diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/clouwatch.png b/content/posts/2022-12-30-micro-hack-eventbridge/clouwatch.png deleted file mode 100644 index dbe0fb40..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/clouwatch.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/cover.jpeg b/content/posts/2022-12-30-micro-hack-eventbridge/cover.jpeg deleted file mode 100644 index baa579a8..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/cover.jpeg and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/diagrams.excalidraw b/content/posts/2022-12-30-micro-hack-eventbridge/diagrams.excalidraw deleted file mode 100644 index e4d120ba..00000000 --- a/content/posts/2022-12-30-micro-hack-eventbridge/diagrams.excalidraw +++ /dev/null @@ -1,7988 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "type": "rectangle", - "version": 329, - "versionNonce": 871270334, - "isDeleted": false, - "id": "IPpfIBABYhUJUtScF-0ga", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 141.4133814157699, - "y": -1257.6152985663539, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 701004489, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 788, - "versionNonce": 770530082, - "isDeleted": false, - "id": "6b742ztEi0BUlQsUvc5zQ", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 149.85082113183944, - "y": -1174.3767403724032, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895, - "height": 134, - "seed": 287846983, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Linux x64 medium", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Linux x64 medium" - }, - { - "type": "rectangle", - "version": 2059, - "versionNonce": 1988288510, - "isDeleted": false, - "id": "tAGL79lVuWWIkVOCLoYLB", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 237.74397114177464, - "y": -926.9267675660813, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 442513833, - "groupIds": [ - "wo_1DkibaJz8i-SB5piiJ", - "AlQPFKoSUgusVYZzUlzju", - "uI_R8uWSYjlrN37qIMnxu" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1219, - "versionNonce": 1335469794, - "isDeleted": false, - "id": "r0RF44U5rq5QiSQigsIWB", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 289.8342973839767, - "y": -871.1966347654125, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1712869735, - "groupIds": [ - "RapTZuAbX7p3YfAX7Kt11", - "AlQPFKoSUgusVYZzUlzju", - "uI_R8uWSYjlrN37qIMnxu" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1219, - "versionNonce": 1298280510, - "isDeleted": false, - "id": "1AtzTNxuy1n-JXiAzwdya", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 340.87309737972555, - "y": -838.0617846545974, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 1667046537, - "groupIds": [ - "RapTZuAbX7p3YfAX7Kt11", - "AlQPFKoSUgusVYZzUlzju", - "uI_R8uWSYjlrN37qIMnxu" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2099, - "versionNonce": 1430682274, - "isDeleted": false, - "id": "rQieHFWuRFBItfDqbQr4U", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 411.90095440374716, - "y": -925.9421288826343, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1643613319, - "groupIds": [ - "R1No_Hd5ab2U_mQlLc7JN", - "gBr7FAUqVDcYy-GLTVLVi", - "wTHD7yFfjPvAu1WzY28yx" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1258, - "versionNonce": 1684895870, - "isDeleted": false, - "id": "RFZx5dTFheoyoFgvbJK0p", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 463.9912806459488, - "y": -870.2119960819655, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 75146089, - "groupIds": [ - "_g9LT73fv8cBlJcMMdHmt", - "gBr7FAUqVDcYy-GLTVLVi", - "wTHD7yFfjPvAu1WzY28yx" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1258, - "versionNonce": 2107823714, - "isDeleted": false, - "id": "A3UG8nQ2pQjZp3-65HaB0", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 515.0300806416981, - "y": -837.0771459711505, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 276980647, - "groupIds": [ - "_g9LT73fv8cBlJcMMdHmt", - "gBr7FAUqVDcYy-GLTVLVi", - "wTHD7yFfjPvAu1WzY28yx" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2156, - "versionNonce": 1130739902, - "isDeleted": false, - "id": "VP2RCa9RDJOLXovhrUyg6", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 588.5499200440868, - "y": -923.393729815838, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 2047102537, - "groupIds": [ - "JL7_A0aK7yGqtS3Sf5OhA", - "btlj8uO_T0owMuGOz1ITv", - "e1tmJMLCYgaDRqXyVOtPR" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1315, - "versionNonce": 1501411874, - "isDeleted": false, - "id": "m3EdWJci71ToD9KyR5APd", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 640.6402462862889, - "y": -867.6635970151692, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1373984455, - "groupIds": [ - "ChRTlEspI5Odbi5N4je5C", - "btlj8uO_T0owMuGOz1ITv", - "e1tmJMLCYgaDRqXyVOtPR" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1315, - "versionNonce": 1374417150, - "isDeleted": false, - "id": "Gd24Rxo2x4JNdAAasHiCn", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 691.6790462820377, - "y": -834.5287469043542, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 718642473, - "groupIds": [ - "ChRTlEspI5Odbi5N4je5C", - "btlj8uO_T0owMuGOz1ITv", - "e1tmJMLCYgaDRqXyVOtPR" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 581, - "versionNonce": 130426338, - "isDeleted": false, - "id": "k3pkzPgILnHy_uw_rd1cJ", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -1756.714878147979, - "y": -576.2640200377282, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 1287448039, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 945, - "versionNonce": 1535189310, - "isDeleted": false, - "id": "lXUtM1KStnbTa3DOJc45x", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -1520.4370645292647, - "y": -476.4579665911115, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 414, - "height": 134, - "seed": 375001097, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Webhook", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Webhook" - }, - { - "type": "rectangle", - "version": 2419, - "versionNonce": 1904941474, - "isDeleted": false, - "id": "q-UM8-XOM3w1oYhCz6VYP", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1292.2983608951636, - "y": -244.73190428311318, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 538284295, - "groupIds": [ - "cnUtjiAEn4hJtGQ-PcpDp", - "fHBqM4osHWRXa71OJKPLD", - "Egl20ZGGulZfXBm0Du-PD" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1578, - "versionNonce": 327567742, - "isDeleted": false, - "id": "QMl-zi5b3LVFkbg0EnTZo", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1240.208034652962, - "y": -189.00177148244074, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1116546793, - "groupIds": [ - "DILng78xsg0YqK0-FQC52", - "fHBqM4osHWRXa71OJKPLD", - "Egl20ZGGulZfXBm0Du-PD" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1578, - "versionNonce": 100373858, - "isDeleted": false, - "id": "QZT8-szRARzYwDC-c3gJl", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1189.169234657213, - "y": -155.86692137162936, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 1433131047, - "groupIds": [ - "DILng78xsg0YqK0-FQC52", - "fHBqM4osHWRXa71OJKPLD", - "Egl20ZGGulZfXBm0Du-PD" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 1911, - "versionNonce": 423389630, - "isDeleted": false, - "id": "Yt5D8orWFC9k8ivWppde1", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 448.76087140067875, - "y": 1166.1085882178886, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.36432904268622, - "height": 129.36432904268622, - "seed": 1778016713, - "groupIds": [ - "WF_i6LtU6HXtnUnE2Usd-", - "yy27C8CjiX2hEatoixA2k", - "y7g0IMhKHHVPGCA0NGy3O", - "XKBYD3e8VyEH2RgZ7Za3a" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1693, - "versionNonce": 1986435362, - "isDeleted": false, - "id": "LLZF70HoSRYysbiqfHA8M", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 475.8198006893931, - "y": 1188.1071891636566, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 77.73215126592353, - "height": 21.37623582977287, - "seed": 313277255, - "groupIds": [ - "y7g0IMhKHHVPGCA0NGy3O", - "XKBYD3e8VyEH2RgZ7Za3a" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2311, - "versionNonce": 2076475902, - "isDeleted": false, - "id": "N1jGAPWDLEkGBCMlTvOqs", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 476.5312484255669, - "y": 1199.792103840602, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 76.12235688675663, - "height": 80.4772115391467, - "seed": 1774010537, - "groupIds": [ - "y7g0IMhKHHVPGCA0NGy3O", - "XKBYD3e8VyEH2RgZ7Za3a" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 7.643443575380352, - 63.89985898598831 - ], - [ - 13.453701915436246, - 75.51223305810007 - ], - [ - 40.448046712817515, - 80.4772115391467 - ], - [ - 64.67589821287176, - 76.3302900087603 - ], - [ - 70.30043105269498, - 63.496974874436326 - ], - [ - 76.12235688675663, - 0.19414715004206573 - ] - ] - }, - { - "type": "ellipse", - "version": 1703, - "versionNonce": 1916478690, - "isDeleted": false, - "id": "ANCjpU8VdHytso_5NhQwr", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 509.86635950597565, - "y": 1220.191368797805, - "strokeColor": "#000000", - "backgroundColor": "#000", - "width": 9.338801443761762, - "height": 9.338801443761762, - "seed": 204683879, - "groupIds": [ - "y7g0IMhKHHVPGCA0NGy3O", - "XKBYD3e8VyEH2RgZ7Za3a" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2389, - "versionNonce": 1042256446, - "isDeleted": false, - "id": "KZkgzRyyR4OW_s9Is7PPp", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 514.8160880565779, - "y": 1225.3058260412326, - "strokeColor": "#000000", - "backgroundColor": "#000", - "width": 46.20902042086896, - "height": 22.920997757510293, - "seed": 1870742409, - "groupIds": [ - "y7g0IMhKHHVPGCA0NGy3O", - "XKBYD3e8VyEH2RgZ7Za3a" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 13.959818742248306, - 14.779540455724831 - ], - [ - 33.80153553185966, - 22.920997757510293 - ], - [ - 45.56652058734014, - 20.16340346746921 - ], - [ - 46.20902042086896, - 11.709055370965237 - ], - [ - 35.705183023821554, - 3.49073418279207 - ] - ] - }, - { - "type": "rectangle", - "version": 1543, - "versionNonce": 1661483170, - "isDeleted": false, - "id": "UHkXwPKXjFirFnFdgGYOx", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 775.296269359309, - "y": -923.9832009348938, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.05422466973346, - "height": 129.05422466973346, - "seed": 919426439, - "groupIds": [ - "zy9iJMFVSkDm0zGNQjgWV", - "0iO0_TXIGTAeNELMX50W7", - "NHzW9VwvTj5hWTkHuDO17", - "LTgmQ6H4-diYSORjjQGvt", - "W_693vYKRjOMv_Gv4ngY9", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1238, - "versionNonce": 1529780862, - "isDeleted": false, - "id": "-5bySe2iWYu3VIpdkGOjV", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 791.524314017302, - "y": -866.265149826253, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 1736567401, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1293, - "versionNonce": 679269474, - "isDeleted": false, - "id": "H8t_wb2nZIrTPsDZZWlNT", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 872.9411827392601, - "y": -866.4107703943919, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 968297639, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1910, - "versionNonce": 1236441790, - "isDeleted": false, - "id": "fc7Cw-87Eo54EcTzSZWD-", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 825.1977933226526, - "y": -873.56331236193, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 713733449, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 1984, - "versionNonce": 1416099874, - "isDeleted": false, - "id": "iU4BIoRfPkMBk_ODizVZU", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 1.5707963267948957, - "x": 838.2091301278565, - "y": -885.3167700769554, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 547151815, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2014, - "versionNonce": 5018366, - "isDeleted": false, - "id": "32IFSAKCpLL5pbQZzaTlR", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 849.9769542899162, - "y": -872.3900087408001, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 1811358761, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2101, - "versionNonce": 1723376610, - "isDeleted": false, - "id": "1OIwVzsJ7uvmvbPZz-G-k", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 4.71238898038469, - "x": 836.9836513159157, - "y": -860.5951961336868, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 1302023911, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 1512, - "versionNonce": 2038268734, - "isDeleted": false, - "id": "p8UCIvuI8vd6XdThJRmag", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 811.641037047636, - "y": -858.1870213684379, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1739765513, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1528, - "versionNonce": 159242146, - "isDeleted": false, - "id": "lwAoXV-z_yNixYY0qgShq", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 856.4442628382662, - "y": -857.9433712879836, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 725539335, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1504, - "versionNonce": 933653374, - "isDeleted": false, - "id": "KBN8uOa9dZNK25IftG8ye", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 799.5026373233568, - "y": -866.1782567200171, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1345908201, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333959, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "line", - "version": 1608, - "versionNonce": 1290179426, - "isDeleted": false, - "id": "hSoyv20gzjU9-n0LZqWuE", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 798.9996389743746, - "y": -817.2231891814263, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 511967527, - "groupIds": [ - "JZc4BXmgv8wIor7bDjkM2", - "4-2KJKx65lvm77dvpeLNI", - "H1wgZfnoJsFb7XYTI5byD" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "rectangle", - "version": 1965, - "versionNonce": 1225280446, - "isDeleted": false, - "id": "S-fIke9i7FlE1zjc6WX3d", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1515.6950225570336, - "y": -243.89956552942567, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 132.513901776222, - "height": 132.513901776222, - "seed": 2090158281, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2438, - "versionNonce": 1665259298, - "isDeleted": false, - "id": "sGOMJUpcDVYe8G_y3tZZl", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "dotted", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1464.6670278476345, - "y": -202.7105051475064, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 31.09111817809873, - "height": 0, - "seed": 953631815, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 31.09111817809873, - 0 - ] - ] - }, - { - "type": "line", - "version": 2489, - "versionNonce": 1271145470, - "isDeleted": false, - "id": "mKdRZeJJwbcwe8DA74o40", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "dotted", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1467.683830058305, - "y": -151.92355594386208, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 35.12579937368071, - "height": 0, - "seed": 1449346985, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 35.12579937368071, - 0 - ] - ] - }, - { - "type": "line", - "version": 2335, - "versionNonce": 1560191714, - "isDeleted": false, - "id": "Q1PMtAIsNn6NJZlgKRldo", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1502.118322642862, - "y": -211.25871242044923, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 34.751149823428165, - "height": 99.22691944723918, - "seed": 706028391, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 34.751149823428165, - -15.168227067575241 - ], - [ - 34.580014950560496, - 84.05869237966394 - ], - [ - 0.16511798805179914, - 68.56115292101326 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2283, - "versionNonce": 1910174782, - "isDeleted": false, - "id": "ZyZs21YLCKKO8jWB40sff", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1431.4867908955998, - "y": -226.80622054554806, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 34.79568563677207, - "height": 98.95300857572143, - "seed": 130968201, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 0.40382397143670984, - 98.95300857572143 - ], - [ - 34.76452822420393, - 83.9401882712694 - ], - [ - 34.79568563677207, - 15.388216872006797 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "line", - "version": 2008, - "versionNonce": 1688991394, - "isDeleted": false, - "id": "weclFG3BViQF9TJQk4Kgh", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1458.7855467088202, - "y": -165.04005924454214, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 18.65370114257963, - "height": 25.013249586069424, - "seed": 1921654407, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 18.65370114257963, - -25.013249586069424 - ] - ] - }, - { - "type": "line", - "version": 2127, - "versionNonce": 86883454, - "isDeleted": false, - "id": "qEwwjWskZihw1jJSefFTl", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -1442.7811763838217, - "y": -185.2671078558178, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 10.282190625874609, - "height": 17.24508457115247, - "seed": 1771188585, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 10.259752942543065, - 8.958129621990127 - ], - [ - -0.022437683331543258, - 17.24508457115247 - ] - ] - }, - { - "type": "line", - "version": 2267, - "versionNonce": 2063127138, - "isDeleted": false, - "id": "cCdAnTUl5K77lfW1VO2Q6", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": -1466.9784385975058, - "y": -186.38082916060193, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 10.282190625874609, - "height": 17.24508457115247, - "seed": 1425192359, - "groupIds": [ - "axS7AJNF-FqFCmNxFUHxL", - "a-xqUQwTTZjaEunczyVoB" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 10.259752942543065, - 8.958129621990127 - ], - [ - -0.022437683331543258, - 17.24508457115247 - ] - ] - }, - { - "type": "rectangle", - "version": 985, - "versionNonce": 1803386046, - "isDeleted": false, - "id": "tNpZdB5KzjmCT-nWtNhFV", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 177.179830624666, - "y": 824.6161242047365, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 821697609, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 1426, - "versionNonce": 850671138, - "isDeleted": false, - "id": "3JPlTIP65oaKg4JUhPgDf", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 212.19989110199322, - "y": 924.3176979515592, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 834, - "height": 134, - "seed": 142305479, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Syncer linux-x64", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Syncer linux-x64" - }, - { - "type": "rectangle", - "version": 2824, - "versionNonce": 711668990, - "isDeleted": false, - "id": "XF1wwwTbs-tAOjBwcuG43", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 641.5963478774806, - "y": 1156.1482399593515, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1575070505, - "groupIds": [ - "kw29FBZ4F2I0WFOYc5ZNh", - "UFHT5IxKEpCEN1U4k9Ngm", - "nv-qdKuRrVebPKFNyJsEN" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1982, - "versionNonce": 1825382882, - "isDeleted": false, - "id": "s5d6NiqnVbdyrUHXgq0ax", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 693.6866741196823, - "y": 1211.878372760024, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 717273063, - "groupIds": [ - "F2gclM0pLLMPwg_lIbCvW", - "UFHT5IxKEpCEN1U4k9Ngm", - "nv-qdKuRrVebPKFNyJsEN" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1982, - "versionNonce": 1803019582, - "isDeleted": false, - "id": "pAIyM1XEMpoasGpAi5Xy-", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 744.7254741154316, - "y": 1245.0132228708353, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 1756651017, - "groupIds": [ - "F2gclM0pLLMPwg_lIbCvW", - "UFHT5IxKEpCEN1U4k9Ngm", - "nv-qdKuRrVebPKFNyJsEN" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 3850, - "versionNonce": 340956578, - "isDeleted": false, - "id": "a3lnTV7MV9uUXIN19HOc5", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -2576.9438359952655, - "y": -309.16590566816194, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 228.7781163626976, - "height": 228.55903974739914, - "seed": 1909400327, - "groupIds": [ - "xuh3iImUyoWMJkibhPEnw", - "Y34D-0hXNmulm_fXmkw57", - "6gDOtwn2-UF1As1eW4vCS", - "oKGAIrGcTW0yQtLfXJuB7", - "pHDlBGS2M_IIRncM8BZBe" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1745, - "versionNonce": 298366, - "isDeleted": false, - "id": "DKUL-PjzwBwDuGkQuqLP5", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -2554.622486969326, - "y": -286.71162613675006, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 184.13541831081753, - "height": 184.13541831081753, - "seed": 812496105, - "groupIds": [ - "sE680VmN111yE54t6cwgC", - "pHDlBGS2M_IIRncM8BZBe" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 5360, - "versionNonce": 1517523298, - "isDeleted": false, - "id": "WUmCZCTUUnQ9nVO2DWcJs", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": -2498.7323324063213, - "y": -249.7725686408321, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 99.7386667792433, - "height": 115.1944641970004, - "seed": 505621031, - "groupIds": [ - "sE680VmN111yE54t6cwgC", - "pHDlBGS2M_IIRncM8BZBe" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 8.952153506039394, - 3.1504148275985675 - ], - [ - 14.985126520979023, - 9.621183179956303 - ], - [ - 23.206631342696312, - 6.918903059645286 - ], - [ - 46.147805044243036, - 7.231044823787492 - ], - [ - 53.30321149362593, - 7.937192638734038 - ], - [ - 58.83770456505607, - 3.5283011626836873 - ], - [ - 66.52487985828556, - -1.8074863408861883 - ], - [ - 68.63317687963549, - 5.5326408894228 - ], - [ - 68.43856484689543, - 12.658011799773933 - ], - [ - 75.47703336432498, - 19.40461514601829 - ], - [ - 78.62326122695475, - 38.718273202909664 - ], - [ - 76.15817547891497, - 58.945787721108715 - ], - [ - 68.98996560632547, - 66.80474279748692 - ], - [ - 59.22692863053606, - 71.01456120685638 - ], - [ - 48.685443523786745, - 73.34043477930085 - ], - [ - 51.47488265972665, - 75.9613681232694 - ], - [ - 54.62111052235638, - 81.77242740610873 - ], - [ - 55.26981729815626, - 99.99982748007206 - ], - [ - 55.14007594299635, - 111.03559144837008 - ], - [ - 51.70193003125663, - 112.94556974496547 - ], - [ - 25.69689715637583, - 113.38697785611421 - ], - [ - 22.445254442678493, - 110.2038008966719 - ], - [ - 21.53706495655864, - 97.22004969101444 - ], - [ - 15.536527280408972, - 98.88791636444891 - ], - [ - 5.611313610669592, - 99.52329414480499 - ], - [ - -3.66519328326976, - 94.20200523432337 - ], - [ - -9.438683587889324, - 84.90960519661658 - ], - [ - -15.049997198558904, - 79.19120517341253 - ], - [ - -21.115405552288543, - 75.16714589782443 - ], - [ - -12.876829499629105, - 75.9613681232694 - ], - [ - -7.038468517429472, - 80.46196073412449 - ], - [ - -0.42165940426998605, - 86.73631631514024 - ], - [ - 7.622304615649531, - 90.65447929400216 - ], - [ - 16.54202278289889, - 89.54256817837927 - ], - [ - 20.953228858338633, - 86.07446446060274 - ], - [ - 21.374888262608568, - 80.62080517921345 - ], - [ - 23.742667994278488, - 75.88194590072499 - ], - [ - 26.82402517932824, - 73.73754589202325 - ], - [ - 15.17973855371898, - 70.74597550951393 - ], - [ - 4.054417348749724, - 67.07717345035687 - ], - [ - -1.621766939499887, - 58.813417350201206 - ], - [ - -5.870796320989606, - 38.90875852124017 - ], - [ - -2.4975210868298436, - 20.180493822847566 - ], - [ - 2.3677797316698683, - 15.04836838716395 - ], - [ - -0.42165940426998605, - 8.08228253641262 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "text", - "version": 504, - "versionNonce": 1699884478, - "isDeleted": false, - "id": "SbiwnK0xhSsvF4H_8m5Y_", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -2728.8863519569904, - "y": -453.3580663115372, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 532, - "height": 126, - "seed": 681127881, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "fontSize": 99.3743832236842, - "fontFamily": 1, - "text": "GitHub App", - "baseline": 88, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "GitHub App" - }, - { - "type": "arrow", - "version": 477, - "versionNonce": 1920931106, - "isDeleted": false, - "id": "GHxDbyfdpGxHQmmPEcVcj", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 726.0136146894888, - "y": 1002.8890576728318, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 0, - "height": 0, - "seed": 749292871, - "groupIds": [], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "triangle", - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 586, - "versionNonce": 1216464382, - "isDeleted": false, - "id": "-mbtq7pN0MxwDt_HDK0d2", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1129.0270299203494, - "y": -1256.657443776483, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 1196576425, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 957, - "versionNonce": 1306796258, - "isDeleted": false, - "id": "P0sREojB5Oj-NOo_WFOMr", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1365.3048435390638, - "y": -1156.3588431737062, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 494, - "height": 134, - "seed": 1220414567, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Linux arm", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Linux arm" - }, - { - "type": "rectangle", - "version": 2317, - "versionNonce": 177493566, - "isDeleted": false, - "id": "qAL6e3F8JQZ6Lti3uKDG7", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1225.3576196463546, - "y": -925.9689127762103, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 860131721, - "groupIds": [ - "3gLNSdemMnuzNMjk1AT0C", - "ZYJ4mmazqfVnzujI9uXOn", - "6oU_5_9LZvc3Utex8QvaI" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1476, - "versionNonce": 1479652514, - "isDeleted": false, - "id": "PZ53D2HtQZH_Yra10Lyuv", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1277.4479458885562, - "y": -870.2387799755415, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 2116937607, - "groupIds": [ - "x7O6XTS9TCWK9cjOLHRRg", - "ZYJ4mmazqfVnzujI9uXOn", - "6oU_5_9LZvc3Utex8QvaI" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1476, - "versionNonce": 1147854462, - "isDeleted": false, - "id": "sLSraJgUMZXLsRA9jqj2Z", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1328.4867458843055, - "y": -837.1039298647265, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 833321065, - "groupIds": [ - "x7O6XTS9TCWK9cjOLHRRg", - "ZYJ4mmazqfVnzujI9uXOn", - "6oU_5_9LZvc3Utex8QvaI" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2357, - "versionNonce": 857133154, - "isDeleted": false, - "id": "XicQ8AxBqoA9cYhVeQgpk", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1399.514602908327, - "y": -924.9842740927634, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 724917927, - "groupIds": [ - "5KejDDktAMQ9kkRXoOQvg", - "LamWfJZsUK1YTPvHULws9", - "b8hGRFXJQiBWybDIKMRhc" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1515, - "versionNonce": 1254514366, - "isDeleted": false, - "id": "SDFHxIGdFhmygIUA0DRJf", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1451.6049291505287, - "y": -869.2541412920946, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1414693705, - "groupIds": [ - "Y7nqshArchTKFRe_FJYqi", - "LamWfJZsUK1YTPvHULws9", - "b8hGRFXJQiBWybDIKMRhc" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1515, - "versionNonce": 1919054882, - "isDeleted": false, - "id": "ZSqJSUtg8nu8slpVgdkEP", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1502.643729146278, - "y": -836.1192911812796, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 847311303, - "groupIds": [ - "Y7nqshArchTKFRe_FJYqi", - "LamWfJZsUK1YTPvHULws9", - "b8hGRFXJQiBWybDIKMRhc" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2414, - "versionNonce": 843568894, - "isDeleted": false, - "id": "SkXaBXEIgAsVBkSwFmFW6", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1576.1635685486663, - "y": -922.4358750259671, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1737830953, - "groupIds": [ - "TYz22WiF_oHNc6liPQTdE", - "FLju9xBU8dfHUG6iswURr", - "w3EUgQpWKKhF1-1DsI33j" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1572, - "versionNonce": 1476632546, - "isDeleted": false, - "id": "4YaR6moUNs586YedDWAkY", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1628.2538947908688, - "y": -866.7057422252983, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1831674087, - "groupIds": [ - "rx2yMbcvIuRzswy5GLcYD", - "FLju9xBU8dfHUG6iswURr", - "w3EUgQpWKKhF1-1DsI33j" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1572, - "versionNonce": 1399867198, - "isDeleted": false, - "id": "-BFnOlpma00RaBgPXiOmD", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1679.2926947866172, - "y": -833.5708921144833, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 543098121, - "groupIds": [ - "rx2yMbcvIuRzswy5GLcYD", - "FLju9xBU8dfHUG6iswURr", - "w3EUgQpWKKhF1-1DsI33j" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 1801, - "versionNonce": 269046690, - "isDeleted": false, - "id": "7Ke_r5sKgYUg6z_28r31Q", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1762.909917863889, - "y": -923.0253461450229, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.05422466973346, - "height": 129.05422466973346, - "seed": 1556507655, - "groupIds": [ - "GHhVnktu-93v6LQqC7_Nd", - "TjaFrZnrj66L7g4fNU8pt", - "Ca_Rx5gqneMz7znFmVJVQ", - "z0ATNrI8hQO_cdsyxqha2", - "sB2BoDlCjNsdKpdNgdgTx", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1495, - "versionNonce": 1319153534, - "isDeleted": false, - "id": "d0Et4Mj6b_1a1Q7_5KlEZ", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1779.1379625218815, - "y": -865.3072950363821, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 170621929, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1550, - "versionNonce": 1822592866, - "isDeleted": false, - "id": "qTYNKCGyJpaXF9Xg-qYqt", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1860.5548312438395, - "y": -865.452915604521, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 491344679, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2167, - "versionNonce": 270143422, - "isDeleted": false, - "id": "7xEhVElU6YHiDrHHJWGsZ", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1812.8114418272326, - "y": -872.6054575720591, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 889591497, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2241, - "versionNonce": 572412706, - "isDeleted": false, - "id": "ll7XnvZn3HOa0rVE1YjA9", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 1.5707963267948957, - "x": 1825.822778632436, - "y": -884.3589152870845, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 388126279, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2271, - "versionNonce": 1409116158, - "isDeleted": false, - "id": "1RzaUEEwNGqQGQfFTuD8Q", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 1837.5906027944957, - "y": -871.4321539509292, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 596268457, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2358, - "versionNonce": 48996066, - "isDeleted": false, - "id": "CD5njwFxka3V3jaNe03DH", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 4.71238898038469, - "x": 1824.5972998204952, - "y": -859.6373413438159, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 1898837351, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 1769, - "versionNonce": 709605438, - "isDeleted": false, - "id": "oKugyXjHNEp1TBqxAI5z8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1799.254685552216, - "y": -857.229166578567, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 2028189833, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1785, - "versionNonce": 999912098, - "isDeleted": false, - "id": "nfB8Mxk7Avz2QzXpVT-78", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1844.0579113428457, - "y": -856.9855164981127, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1119400071, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1761, - "versionNonce": 2061893758, - "isDeleted": false, - "id": "eufgjCI290TpionRYXOKM", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1787.1162858279367, - "y": -865.2204019301462, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1724759913, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "line", - "version": 1865, - "versionNonce": 248958562, - "isDeleted": false, - "id": "imb95lj_kqKOOsQSNw-_A", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 1786.6132874789546, - "y": -816.2653343915554, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 92211111, - "groupIds": [ - "KWfENJlPuiL9YZulU9yIn", - "4I3nwZ3BbIVrvR2Axq6yN", - "a7RqGwtNwbIHq9QI-ezM2" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "rectangle", - "version": 500, - "versionNonce": 160252094, - "isDeleted": false, - "id": "sYuPasVyYKlqcIkKpAkAY", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 168.84366316430624, - "y": -595.4949778239497, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 1536420425, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 2231, - "versionNonce": 292729378, - "isDeleted": false, - "id": "FesKKWTzeAkohMG2HnbBg", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 265.17425289031144, - "y": -264.8064468236771, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1202551495, - "groupIds": [ - "Lu1K_qtROItXl11gRMio5", - "WkYn9pkJbVIempLUnaMhE", - "z7_DEDNOJOYp5aDu9CrvI" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1390, - "versionNonce": 2044885246, - "isDeleted": false, - "id": "h-tj1ZQWL7QzrlXPLbQol", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 317.26457913251306, - "y": -209.0763140230083, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1880209705, - "groupIds": [ - "b5y6PO2uWmSGzOMwYoYpR", - "WkYn9pkJbVIempLUnaMhE", - "z7_DEDNOJOYp5aDu9CrvI" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1390, - "versionNonce": 1717312994, - "isDeleted": false, - "id": "oa1AjF27ENnpQjKEFhUI2", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 368.30337912826235, - "y": -175.94146391219329, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 501254631, - "groupIds": [ - "b5y6PO2uWmSGzOMwYoYpR", - "WkYn9pkJbVIempLUnaMhE", - "z7_DEDNOJOYp5aDu9CrvI" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2271, - "versionNonce": 1399236926, - "isDeleted": false, - "id": "Z75KVUhA84otOQ6lfUITw", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 439.33123615228396, - "y": -263.82180814023013, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 364030985, - "groupIds": [ - "KYYPl8YHhyG291qbVk9x4", - "2GHpjGmiinJ_mjdbuSqtC", - "Aqiw9lCGqcDOrhxp1hW7x" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1429, - "versionNonce": 2057441698, - "isDeleted": false, - "id": "vu5GH6GwNO0KOx_qRZJ_E", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 491.4215623944856, - "y": -208.09167533956133, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1428468999, - "groupIds": [ - "ZKJ0DAwLsYMB2ueXPlyCe", - "2GHpjGmiinJ_mjdbuSqtC", - "Aqiw9lCGqcDOrhxp1hW7x" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1429, - "versionNonce": 91935102, - "isDeleted": false, - "id": "svw8WcluNtkqb7Clc5lV8", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 542.4603623902349, - "y": -174.9568252287463, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 74597097, - "groupIds": [ - "ZKJ0DAwLsYMB2ueXPlyCe", - "2GHpjGmiinJ_mjdbuSqtC", - "Aqiw9lCGqcDOrhxp1hW7x" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2328, - "versionNonce": 1098091874, - "isDeleted": false, - "id": "yURV1YlUEjyNQoKyg_1pn", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 615.9802017926231, - "y": -261.27340907343387, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1693875239, - "groupIds": [ - "BBPcxJPN5yaQFr197W1n8", - "47NN2NkccCD3C5sGNKW18", - "Lw51wDBiSa_KKYXuzQLJX" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1486, - "versionNonce": 1801449918, - "isDeleted": false, - "id": "QYJF7Cm3lLHLFSi5Z8V56", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 668.0705280348257, - "y": -205.54327627276507, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1759247817, - "groupIds": [ - "xHAUf1YLRq2pqv8UmBr-3", - "47NN2NkccCD3C5sGNKW18", - "Lw51wDBiSa_KKYXuzQLJX" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1486, - "versionNonce": 1881116962, - "isDeleted": false, - "id": "f3SAoje7YPgSswRj23ToB", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 719.109328030574, - "y": -172.40842616195005, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 557997895, - "groupIds": [ - "xHAUf1YLRq2pqv8UmBr-3", - "47NN2NkccCD3C5sGNKW18", - "Lw51wDBiSa_KKYXuzQLJX" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 1715, - "versionNonce": 1345784318, - "isDeleted": false, - "id": "GXc0Rht77uZjfwndEAXK5", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 802.7265511078458, - "y": -261.8628801924897, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.05422466973346, - "height": 129.05422466973346, - "seed": 1376476329, - "groupIds": [ - "c-L8YW62dX2l_4-w_LmCt", - "qAuD154PwFiX3s5bLT8oq", - "5oCiNPELpESDdiLwpjMd0", - "A07QjiveZt9rE1e1n6zKT", - "n7RK42v8nQ92hk9KZyfpx", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1409, - "versionNonce": 974462178, - "isDeleted": false, - "id": "f5xXU7DcOoNtO7sJ_AHWg", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 818.9545957658383, - "y": -204.1448290838489, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 744808039, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1464, - "versionNonce": 1929452094, - "isDeleted": false, - "id": "rd8xgo309l2LEGE87qMv7", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 900.3714644877964, - "y": -204.29044965198773, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 1605099401, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2081, - "versionNonce": 216215714, - "isDeleted": false, - "id": "v2UKpoAtkVC2Edp4O5fVe", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 852.6280750711894, - "y": -211.44299161952586, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 690649479, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2155, - "versionNonce": 178201214, - "isDeleted": false, - "id": "MR0ehkJfAdoKzuRt57Etw", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 1.5707963267948957, - "x": 865.6394118763928, - "y": -223.1964493345513, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 804849257, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2185, - "versionNonce": 1278790754, - "isDeleted": false, - "id": "6sW-V_A4xruBjhAQ9P4fz", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 877.4072360384525, - "y": -210.26968799839597, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 751808679, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2272, - "versionNonce": 1238508222, - "isDeleted": false, - "id": "yXmvvb4YyvKIt9QpR1W37", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 4.71238898038469, - "x": 864.4139330644521, - "y": -198.4748753912827, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 230576457, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 1683, - "versionNonce": 233107490, - "isDeleted": false, - "id": "nm2CZsVMGdIZ9x-2OYUiK", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 839.0713187961728, - "y": -196.0667006260337, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1895891911, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1699, - "versionNonce": 1664817918, - "isDeleted": false, - "id": "flnMXwrsUoiTKSfmwgy92", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 883.8745445868026, - "y": -195.82305054557946, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1582776361, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1675, - "versionNonce": 1440127970, - "isDeleted": false, - "id": "AvQ_QyK4d4J1koizbcrFm", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 826.9329190718936, - "y": -204.05793597761294, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1171976935, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "line", - "version": 1779, - "versionNonce": 224070462, - "isDeleted": false, - "id": "fOI9KEwkS225YypNZGXo_", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 826.4299207229114, - "y": -155.10286843902213, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1336890121, - "groupIds": [ - "ScFB83G0ondS1guW1JP3S", - "92TimlknlAYOOvadDojbM", - "bvOlYXGhnhR9o-gYG_8cl" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "rectangle", - "version": 568, - "versionNonce": 1377619874, - "isDeleted": false, - "id": "f_jlcVo-qEUPoUTeU58p2", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 2192.227380670895, - "y": -1306.598740276857, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 1139408391, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 925, - "versionNonce": 110293886, - "isDeleted": false, - "id": "A8QDz0UFE_Zr9x2p0Mfnj", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 2428.5051942896093, - "y": -1206.7926868302366, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 393, - "height": 134, - "seed": 1178733033, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Runners", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Runners" - }, - { - "type": "rectangle", - "version": 2300, - "versionNonce": 384207714, - "isDeleted": false, - "id": "8vichiL0MQhey4TwuHx2u", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2288.5579703969, - "y": -975.9102092765806, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1042982183, - "groupIds": [ - "b6ODHWkouJjJO-CoqMNNB", - "CVMRvc3R8AcX-6Ii4UF7k", - "XzZx9rmfzNA0gkQPzTh_y" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1458, - "versionNonce": 421778366, - "isDeleted": false, - "id": "6WLWoNqujslq_Hyq0k6j5", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2340.6482966391018, - "y": -920.1800764759155, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 186311881, - "groupIds": [ - "ICCMCxWmB09uL8ixtJFMq", - "CVMRvc3R8AcX-6Ii4UF7k", - "XzZx9rmfzNA0gkQPzTh_y" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1458, - "versionNonce": 1518522146, - "isDeleted": false, - "id": "eo97eLoMvW_tZI3YLHZmM", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2391.687096634851, - "y": -887.0452263650986, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 1946773575, - "groupIds": [ - "ICCMCxWmB09uL8ixtJFMq", - "CVMRvc3R8AcX-6Ii4UF7k", - "XzZx9rmfzNA0gkQPzTh_y" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2340, - "versionNonce": 523152382, - "isDeleted": false, - "id": "Q2Gtv2wCYiK3atFaz3zoZ", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2462.7149536588727, - "y": -974.9255705931337, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 970285993, - "groupIds": [ - "7L3NB5fyxHtdmRcZQS9Qg", - "WOeX-HLqNtPie-Dgxcj5u", - "J7zn00T6kYp_9oa-M7oK-" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1497, - "versionNonce": 828414690, - "isDeleted": false, - "id": "I9pZb5gdJ3Bw4OJ4gH2cK", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2514.8052799010743, - "y": -919.1954377924685, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 56805223, - "groupIds": [ - "00-NUEPZPNTIZ1qf9Fxe3", - "WOeX-HLqNtPie-Dgxcj5u", - "J7zn00T6kYp_9oa-M7oK-" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1497, - "versionNonce": 112491582, - "isDeleted": false, - "id": "bUninHpGPXQwNddEKmd_b", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2565.8440798968236, - "y": -886.0605876816517, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 1855784585, - "groupIds": [ - "00-NUEPZPNTIZ1qf9Fxe3", - "WOeX-HLqNtPie-Dgxcj5u", - "J7zn00T6kYp_9oa-M7oK-" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2397, - "versionNonce": 1242492578, - "isDeleted": false, - "id": "lqY4VFRens-8TkwIj090-", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2639.3639192992123, - "y": -972.377171526341, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 444809863, - "groupIds": [ - "sySb-MYnRZfjvrzAGCo6R", - "xlQ3f5KHPm1UrUXkxEhme", - "KFIc1ISKbBaV39qpJN2y5" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1554, - "versionNonce": 1435911294, - "isDeleted": false, - "id": "GZDQ0akuRBM_MDNx5zOqT", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2691.454245541415, - "y": -916.6470387256686, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 875384169, - "groupIds": [ - "2zJMuczU6oZy0uwsvtGIz", - "xlQ3f5KHPm1UrUXkxEhme", - "KFIc1ISKbBaV39qpJN2y5" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1554, - "versionNonce": 691849826, - "isDeleted": false, - "id": "aQwZIQvT-1mwMybeCx8KH", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2742.4930455371623, - "y": -883.5121886148518, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 1780963751, - "groupIds": [ - "2zJMuczU6oZy0uwsvtGIz", - "xlQ3f5KHPm1UrUXkxEhme", - "KFIc1ISKbBaV39qpJN2y5" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 1784, - "versionNonce": 764740798, - "isDeleted": false, - "id": "N0cKMu3_qM5MOj3HWAmiu", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2826.110268614435, - "y": -972.9666426453969, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.05422466973346, - "height": 129.05422466973346, - "seed": 835827785, - "groupIds": [ - "RKagDoPs9e0Wys7AvQlTk", - "TqmubCs479tRHOnK4vrUs", - "dNvYnM1YXlT4YxuRNPj0r", - "meHBgNYUxpSo4_B2n2phU", - "JajnSxgLeJFcofPVuK6j4", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333960, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1477, - "versionNonce": 1706634786, - "isDeleted": false, - "id": "q5vdWwM1TaC7VXB1gKNpA", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2842.3383132724266, - "y": -915.2485915367561, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 1467714759, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1532, - "versionNonce": 1347534078, - "isDeleted": false, - "id": "67cB6LQzgcvHUQSyucUMR", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2923.7551819943856, - "y": -915.3942121048949, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 426100521, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2149, - "versionNonce": 1685264866, - "isDeleted": false, - "id": "oGP0voOu1NWV4HTeLl0Bh", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2876.0117925777786, - "y": -922.546754072433, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 1847352295, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2223, - "versionNonce": 592276798, - "isDeleted": false, - "id": "OzGzzH5TqcFYqzOeuXHCC", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 1.5707963267948957, - "x": 2889.023129382981, - "y": -934.3002117874548, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 1431632393, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2253, - "versionNonce": 343510434, - "isDeleted": false, - "id": "rCAZhGVvGLhkXfAKdvq-q", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 2900.7909535450417, - "y": -921.3734504513031, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 303449863, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2340, - "versionNonce": 870913406, - "isDeleted": false, - "id": "Dwiq4Nucu30o5zye1b7Ss", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 4.71238898038469, - "x": 2887.7976505710403, - "y": -909.5786378441899, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 1989857513, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 1751, - "versionNonce": 721127778, - "isDeleted": false, - "id": "v7JEb9ftRs4hQz4xf-oS3", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2862.455036302762, - "y": -907.1704630789372, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1910885927, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1767, - "versionNonce": 996521406, - "isDeleted": false, - "id": "Yul7us8kUKgEPU76Cg4jD", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2907.2582620933917, - "y": -906.926812998483, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1656933321, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1743, - "versionNonce": 1598557474, - "isDeleted": false, - "id": "R1SVgob23aA1QnOQE_qB8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2850.3166365784828, - "y": -915.1616984305201, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 947351879, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "line", - "version": 1847, - "versionNonce": 585387518, - "isDeleted": false, - "id": "CBvI5ornhRAyOR6GrhYS1", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 2849.8136382295006, - "y": -866.2066308919275, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1105750697, - "groupIds": [ - "Jtc7-yLtSK24M1Dtk7o_2", - "U3bUJ0TFSgBRLITR02mDE", - "CmkVsC3Psvi76jBGN0D6h" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "text", - "version": 889, - "versionNonce": 651040994, - "isDeleted": false, - "id": "GApgyiAL7hdau20EPRY2l", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 177.54007642336455, - "y": -515.2422003187257, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 814, - "height": 134, - "seed": 2133307495, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Linux x64 large", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Linux x64 large" - }, - { - "type": "rectangle", - "version": 573, - "versionNonce": 124116542, - "isDeleted": false, - "id": "cXUaOMvRxPtQCgiYi2GTM", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 194.471040956043, - "y": 58.219578100593935, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 750202249, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 2305, - "versionNonce": 1897704610, - "isDeleted": false, - "id": "prp3AM_hdUW-vhHYONa7j", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 290.8016306820482, - "y": 388.90810910086293, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 2143488903, - "groupIds": [ - "9swU7-qA7quY6tHbBJp6x", - "6k9Zc-KsYBjjDftCax4L2", - "V3aavuDU3WDh31kb6SSop" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1463, - "versionNonce": 1036740222, - "isDeleted": false, - "id": "Z_x3tZfPhkWhCKHr35eHn", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 342.8919569242498, - "y": 444.63824190153537, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 443192425, - "groupIds": [ - "ZmNiYF9E7_-x7odgyXjSG", - "6k9Zc-KsYBjjDftCax4L2", - "V3aavuDU3WDh31kb6SSop" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1463, - "versionNonce": 1675806818, - "isDeleted": false, - "id": "1VCPt5UJ0rzuREFpyrT7E", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 393.9307569199991, - "y": 477.7730920123504, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 109445799, - "groupIds": [ - "ZmNiYF9E7_-x7odgyXjSG", - "6k9Zc-KsYBjjDftCax4L2", - "V3aavuDU3WDh31kb6SSop" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2345, - "versionNonce": 1456858814, - "isDeleted": false, - "id": "PoUjnVHK5ULc5YKHGAdB3", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 464.9586139440207, - "y": 389.8927477843099, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 248389449, - "groupIds": [ - "YANaOrizeDDBFZbb6bFXo", - "TtQhKTljdYFgIHPCq02EY", - "esxK5LjFpsxV9QxDyqRFX" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1502, - "versionNonce": 384789538, - "isDeleted": false, - "id": "L1BpbJDE8mhVUG5_RbL55", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 517.0489401862224, - "y": 445.62288058498234, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 605885895, - "groupIds": [ - "nmoBUajNxrT2yP90jhlCA", - "TtQhKTljdYFgIHPCq02EY", - "esxK5LjFpsxV9QxDyqRFX" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1502, - "versionNonce": 589717246, - "isDeleted": false, - "id": "1xCHBwnDTEr28ibpGDeNs", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 568.0877401819716, - "y": 478.75773069579736, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 138235433, - "groupIds": [ - "nmoBUajNxrT2yP90jhlCA", - "TtQhKTljdYFgIHPCq02EY", - "esxK5LjFpsxV9QxDyqRFX" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2402, - "versionNonce": 1345427426, - "isDeleted": false, - "id": "bsfwkp_HNi6jHZ1dtQMvm", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 641.6075795843599, - "y": 392.4411468511098, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 530892007, - "groupIds": [ - "UVvWB39F8JUqmpcnABGMu", - "OlG1Hm64EycIKNHmglUtk", - "fExipPnNErgdhfpjARevK" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 1559, - "versionNonce": 926797630, - "isDeleted": false, - "id": "PLH3W4ak15HKf2eGYC8NV", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 693.6979058265624, - "y": 448.17127965177497, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 765698313, - "groupIds": [ - "nDdpbbXlUOuET8VGJpDQj", - "OlG1Hm64EycIKNHmglUtk", - "fExipPnNErgdhfpjARevK" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 1559, - "versionNonce": 1069042594, - "isDeleted": false, - "id": "vCz8bUvapg_9LTnT0YnJg", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 744.7367058223108, - "y": 481.30612976259, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 682201095, - "groupIds": [ - "nDdpbbXlUOuET8VGJpDQj", - "OlG1Hm64EycIKNHmglUtk", - "fExipPnNErgdhfpjARevK" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333961, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 1789, - "versionNonce": 1870477182, - "isDeleted": false, - "id": "_-uFyo7Ap7KibURUNf0AW", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 828.3539288995826, - "y": 391.851675732054, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.05422466973346, - "height": 129.05422466973346, - "seed": 1014798313, - "groupIds": [ - "vcV3MsBe_c20sYTgBVcHV", - "YdtnWEs5KlfFZLCt-hJ6K", - "VFHin-0Z-Yz8YRHpWLm-O", - "VbB9ovd6z3Zgh1-IBN3gz", - "4IF6d9YLHulYV46VXyyxN", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1482, - "versionNonce": 1001555810, - "isDeleted": false, - "id": "9XsJd2-YRrn6BDJh5Ex6G", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 844.5819735575751, - "y": 449.5697268406948, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 1227355943, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1537, - "versionNonce": 1948620734, - "isDeleted": false, - "id": "vwTPy3XI1T6fvApViQFyO", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 925.9988422795332, - "y": 449.42410627255595, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 16.097701154736594, - "height": 16.097701154736594, - "seed": 919843529, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2154, - "versionNonce": 2087668514, - "isDeleted": false, - "id": "aOthldIe3lguYWjfLrnK6", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 878.2554528629262, - "y": 442.2715643050178, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 395082311, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2228, - "versionNonce": 1029173246, - "isDeleted": false, - "id": "Sft67W4NnaqDB070qQ8-b", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 1.5707963267948957, - "x": 891.2667896681296, - "y": 430.51810658998875, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 1363440041, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2258, - "versionNonce": 1482528482, - "isDeleted": false, - "id": "_rQU6acPglrML3e6OrhYu", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 903.0346138301893, - "y": 443.4448679261477, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055133, - "height": 29.549397254469028, - "seed": 682858855, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.0423931986251556, - 6.972347246506971 - ], - [ - 4.0521665099182815, - 15.09977569386186 - ], - [ - 2.582101126122359, - 22.99320549938339 - ], - [ - -1.2200231991368504, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 2345, - "versionNonce": 387268670, - "isDeleted": false, - "id": "M6Z-7tgVtYiVaBV429V37", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 4.71238898038469, - "x": 890.0413108561888, - "y": 455.239680533261, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 5.272189709055135, - "height": 29.549397254469028, - "seed": 553276553, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 3.042393198625157, - 6.972347246506971 - ], - [ - 4.052166509918283, - 15.09977569386186 - ], - [ - 2.5821011261223603, - 22.99320549938339 - ], - [ - -1.220023199136851, - 29.549397254469028 - ] - ] - }, - { - "type": "line", - "version": 1756, - "versionNonce": 813730, - "isDeleted": false, - "id": "t1ePoiS9ARRGzr04lJsqM", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 864.6986965879096, - "y": 457.64785529850633, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 1105843335, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1772, - "versionNonce": 624855166, - "isDeleted": false, - "id": "TT6yQoy_y_7qLGVhmAv0s", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 909.5019223785393, - "y": 457.8915053789606, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 11.58552847456568, - "height": 10.246271570482037, - "seed": 162585449, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 11.53402924765135, - -0.10642859231165952 - ], - [ - 6.4540766663015186, - -5.021875975488723 - ], - [ - 11.58552847456568, - -0.09602030268809739 - ], - [ - 6.018513909760972, - 5.224395594993314 - ] - ] - }, - { - "type": "line", - "version": 1748, - "versionNonce": 975881826, - "isDeleted": false, - "id": "WiAbGZZNvAG9GlB0EljxJ", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 852.5602968636304, - "y": 449.65661994693073, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1256958887, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "line", - "version": 1852, - "versionNonce": 1737803966, - "isDeleted": false, - "id": "5BA3vcr4Muk96tgjFiKAK", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 3.141592653589793, - "x": 852.0572985146482, - "y": 498.61168748552154, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 81.99563367263444, - "height": 33.92697695483612, - "seed": 1806927433, - "groupIds": [ - "VBeO1B0K5U8urIML10PI4", - "AsxbBzwfjAP51uSAfCx16", - "UygLxMFWnWQPl6lyfguPH" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 5.076379287981681, - -15.191497858134447 - ], - [ - 16.40139560222033, - -25.977106437843645 - ], - [ - 29.932871603188858, - -32.11238494979527 - ], - [ - 43.51119604430974, - -33.601230358138274 - ], - [ - 58.99548250833466, - -29.811075560335652 - ], - [ - 70.34929816561339, - -21.942143079137395 - ], - [ - 78.47464522980025, - -10.504942290609405 - ], - [ - 81.99563367263444, - 0.3257465966978505 - ] - ] - }, - { - "type": "text", - "version": 995, - "versionNonce": 528984610, - "isDeleted": false, - "id": "N0zkgfodcQ9VLZ4G778g_", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 203.16745421510132, - "y": 138.9649027619762, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 903, - "height": 134, - "seed": 2145754823, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Linux x64 ubuntu", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Linux x64 ubuntu" - }, - { - "type": "rectangle", - "version": 2021, - "versionNonce": 1035534590, - "isDeleted": false, - "id": "mGt5Mg9ZESVETOyIJ1o_N", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1454.2571364341811, - "y": 1145.1726817048948, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.36432904268622, - "height": 129.36432904268622, - "seed": 299750697, - "groupIds": [ - "G0tZz3byJbESWtjsw6YH4", - "R1jqdP72-mDylCMg_R76u", - "xyCPIzPQMGL0WwZigPLx7", - "gmp5HEeBWNog8ZBVd8Bmj" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1802, - "versionNonce": 1460803042, - "isDeleted": false, - "id": "hMYugFC72JO92VvudrLaP", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1481.3160657228955, - "y": 1167.1712826506664, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 77.73215126592353, - "height": 21.37623582977287, - "seed": 1668558311, - "groupIds": [ - "xyCPIzPQMGL0WwZigPLx7", - "gmp5HEeBWNog8ZBVd8Bmj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2420, - "versionNonce": 1798058302, - "isDeleted": false, - "id": "kVfSps_0J2NZlynsiAaLp", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1482.0275134590693, - "y": 1178.8561973276119, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 76.12235688675663, - "height": 80.4772115391467, - "seed": 1604012041, - "groupIds": [ - "xyCPIzPQMGL0WwZigPLx7", - "gmp5HEeBWNog8ZBVd8Bmj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 7.643443575380352, - 63.89985898598831 - ], - [ - 13.453701915436246, - 75.51223305810007 - ], - [ - 40.448046712817515, - 80.4772115391467 - ], - [ - 64.67589821287176, - 76.3302900087603 - ], - [ - 70.30043105269498, - 63.496974874436326 - ], - [ - 76.12235688675663, - 0.19414715004206573 - ] - ] - }, - { - "type": "ellipse", - "version": 1812, - "versionNonce": 1373178274, - "isDeleted": false, - "id": "2N6p7lHF0HxRb92cbAxuj", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1515.362624539478, - "y": 1199.2554622848147, - "strokeColor": "#000000", - "backgroundColor": "#000", - "width": 9.338801443761762, - "height": 9.338801443761762, - "seed": 1889786119, - "groupIds": [ - "xyCPIzPQMGL0WwZigPLx7", - "gmp5HEeBWNog8ZBVd8Bmj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2498, - "versionNonce": 458185086, - "isDeleted": false, - "id": "EaR1I865hEfgEodsrbxOY", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1520.3123530900803, - "y": 1204.3699195282425, - "strokeColor": "#000000", - "backgroundColor": "#000", - "width": 46.20902042086896, - "height": 22.920997757510293, - "seed": 1055350505, - "groupIds": [ - "xyCPIzPQMGL0WwZigPLx7", - "gmp5HEeBWNog8ZBVd8Bmj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 13.959818742248306, - 14.779540455724831 - ], - [ - 33.80153553185966, - 22.920997757510293 - ], - [ - 45.56652058734014, - 20.16340346746921 - ], - [ - 46.20902042086896, - 11.709055370965237 - ], - [ - 35.705183023821554, - 3.49073418279207 - ] - ] - }, - { - "type": "rectangle", - "version": 1094, - "versionNonce": 118195554, - "isDeleted": false, - "id": "-bYH1ifBdDlHq8BEXuHfB", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1182.6760956581684, - "y": 803.6802176917445, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 217128999, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 1538, - "versionNonce": 1701018046, - "isDeleted": false, - "id": "yg3LplPWoUsME-BxGOQDJ", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1217.6961561354956, - "y": 903.381791438569, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 822, - "height": 134, - "seed": 1313708489, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "fontSize": 106.05317217880123, - "fontFamily": 1, - "text": "Syncer linux-arm", - "baseline": 94, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Syncer linux-arm" - }, - { - "type": "rectangle", - "version": 2934, - "versionNonce": 804817186, - "isDeleted": false, - "id": "5CNVw6YnCLsxVrqBlXRMv", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1647.0926129109835, - "y": 1135.2123334463577, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 977830727, - "groupIds": [ - "L-H4Eaa7FUWYPehuhZOys", - "9wIjV70UoM3PExcm2CgpH", - "7ywWuAJTH2iC4wm0moiGo" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2091, - "versionNonce": 1351193086, - "isDeleted": false, - "id": "fPw3tS127kJqiJ3N8Ed00", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1699.182939153185, - "y": 1190.94246624703, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1323923625, - "groupIds": [ - "h-jB7I120KJ1quuFjX3hF", - "9wIjV70UoM3PExcm2CgpH", - "7ywWuAJTH2iC4wm0moiGo" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 2091, - "versionNonce": 68097250, - "isDeleted": false, - "id": "34kAtUr4I7DaBfRcNnwHZ", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1750.2217391489344, - "y": 1224.0773163578451, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 151421543, - "groupIds": [ - "h-jB7I120KJ1quuFjX3hF", - "9wIjV70UoM3PExcm2CgpH", - "7ywWuAJTH2iC4wm0moiGo" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "arrow", - "version": 586, - "versionNonce": 1472373310, - "isDeleted": false, - "id": "OBWYgtHqfc-kRJrev9VIH", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1731.5098797229916, - "y": 981.9531511598398, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 0, - "height": 0, - "seed": 1382448009, - "groupIds": [], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "triangle", - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ] - }, - { - "type": "rectangle", - "version": 2119, - "versionNonce": 1960716450, - "isDeleted": false, - "id": "_gfzncGuXEFG9Yw_fnEMe", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2429.0563001985947, - "y": 1144.6532105511687, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 129.36432904268622, - "height": 129.36432904268622, - "seed": 1240964487, - "groupIds": [ - "Bp3a26LZ8aQGj85a6QglK", - "cWFDuMCxE-AyrLJrZ4iZg", - "C6EBP2t_EZG62wENGODlV", - "Urjkz64EQHmZ2bdnHGPKj" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "ellipse", - "version": 1899, - "versionNonce": 1844423294, - "isDeleted": false, - "id": "EdxLXuttHwQQJ4gPM3GC0", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2456.115229487309, - "y": 1166.6518114969404, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 77.73215126592353, - "height": 21.37623582977287, - "seed": 687874665, - "groupIds": [ - "C6EBP2t_EZG62wENGODlV", - "Urjkz64EQHmZ2bdnHGPKj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2517, - "versionNonce": 1779745890, - "isDeleted": false, - "id": "eQt1HCO362OebO7ZDZQah", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2456.826677223483, - "y": 1178.3367261738858, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 76.12235688675663, - "height": 80.4772115391467, - "seed": 5788839, - "groupIds": [ - "C6EBP2t_EZG62wENGODlV", - "Urjkz64EQHmZ2bdnHGPKj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 7.643443575380352, - 63.89985898598831 - ], - [ - 13.453701915436246, - 75.51223305810007 - ], - [ - 40.448046712817515, - 80.4772115391467 - ], - [ - 64.67589821287176, - 76.3302900087603 - ], - [ - 70.30043105269498, - 63.496974874436326 - ], - [ - 76.12235688675663, - 0.19414715004206573 - ] - ] - }, - { - "type": "ellipse", - "version": 1909, - "versionNonce": 30517950, - "isDeleted": false, - "id": "nrm-94hi4Apa-N769gA6e", - "fillStyle": "solid", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2490.1617883038916, - "y": 1198.7359911310887, - "strokeColor": "#000000", - "backgroundColor": "#000", - "width": 9.338801443761762, - "height": 9.338801443761762, - "seed": 260173129, - "groupIds": [ - "C6EBP2t_EZG62wENGODlV", - "Urjkz64EQHmZ2bdnHGPKj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2595, - "versionNonce": 2105665570, - "isDeleted": false, - "id": "uAuBTlyJurXpd4Mz-3dV_", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2495.111516854494, - "y": 1203.8504483745164, - "strokeColor": "#000000", - "backgroundColor": "#000", - "width": 46.20902042086896, - "height": 22.920997757510293, - "seed": 332736455, - "groupIds": [ - "C6EBP2t_EZG62wENGODlV", - "Urjkz64EQHmZ2bdnHGPKj" - ], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - 13.959818742248306, - 14.779540455724831 - ], - [ - 33.80153553185966, - 22.920997757510293 - ], - [ - 45.56652058734014, - 20.16340346746921 - ], - [ - 46.20902042086896, - 11.709055370965237 - ], - [ - 35.705183023821554, - 3.49073418279207 - ] - ] - }, - { - "type": "rectangle", - "version": 1191, - "versionNonce": 34185982, - "isDeleted": false, - "id": "ORxDVCQ-jmfuzfFAvx82R", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 2157.475259422582, - "y": 803.1607465380184, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 895.0043993547965, - "height": 574.5410017946701, - "seed": 491215913, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "text", - "version": 1682, - "versionNonce": 924095458, - "isDeleted": false, - "id": "eop-ffoxIoC9CbQiOjp6y", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 2192.495319899909, - "y": 902.2735863106227, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 845, - "height": 115, - "seed": 1116378855, - "groupIds": [], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "fontSize": 90.35605258326912, - "fontFamily": 1, - "text": "Syncer windows-x64", - "baseline": 80, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Syncer windows-x64" - }, - { - "type": "rectangle", - "version": 3032, - "versionNonce": 1629000510, - "isDeleted": false, - "id": "iDjovj5krJQrbObGgj_qs", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2621.8917766753975, - "y": 1134.6928622926316, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134.35935217859557, - "height": 134.23069043167254, - "seed": 1916530441, - "groupIds": [ - "JzOAmRTUbuH71BehZl-US", - "ycgtsTqPCNC7LKCmJCpTm", - "EJpv8MBKcCwika1WG6KRp" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false - }, - { - "type": "line", - "version": 2188, - "versionNonce": 1222363042, - "isDeleted": false, - "id": "iHEc6rRx6fy4ST1CHkU17", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2673.982102917599, - "y": 1190.422995093304, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 40.242769241175935, - "height": 56.06265732091207, - "seed": 1392845319, - "groupIds": [ - "NL54pKrRTcwPXUrK5XQch", - "ycgtsTqPCNC7LKCmJCpTm", - "EJpv8MBKcCwika1WG6KRp" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -26.53444674729941, - 53.0799580374892 - ], - [ - -1.079395516271644, - 56.06265732091207 - ], - [ - 13.708322493876526, - 27.473766076028625 - ], - [ - 1.874411811981948, - 1.1755712060450763 - ] - ] - }, - { - "type": "line", - "version": 2188, - "versionNonce": 425687934, - "isDeleted": false, - "id": "3LbhxLeMV8Ag_KyfkOLir", - "fillStyle": "cross-hatch", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 2725.0209029133484, - "y": 1223.557845204119, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 72.66822465952413, - "height": 91.711228840396, - "seed": 618341865, - "groupIds": [ - "NL54pKrRTcwPXUrK5XQch", - "ycgtsTqPCNC7LKCmJCpTm", - "EJpv8MBKcCwika1WG6KRp" - ], - "roundness": null, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": null, - "points": [ - [ - 0, - 0 - ], - [ - -31.182074805610032, - -67.57450088649179 - ], - [ - -60.80940479100726, - -68.783421630297 - ], - [ - -62.901771464847585, - -47.94204487631701 - ], - [ - -47.72588609550165, - -45.855614420198 - ], - [ - -16.39643259575279, - 21.723055158513795 - ], - [ - 7.690692714729262, - 22.927807210099 - ], - [ - 9.766453194676531, - 2.0843461100090006 - ], - [ - 7.690692714729263, - 0 - ] - ] - }, - { - "type": "arrow", - "version": 683, - "versionNonce": 1258718050, - "isDeleted": false, - "id": "JT-BeyHqS-lHar8oVt9jo", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 2706.3090434874057, - "y": 981.4336800061137, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 0, - "height": 0, - "seed": 104941863, - "groupIds": [], - "roundness": { - "type": 2 - }, - "boundElements": null, - "updated": 1673023333962, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "triangle", - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ] - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} -} \ No newline at end of file diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/echo.png b/content/posts/2022-12-30-micro-hack-eventbridge/echo.png deleted file mode 100644 index 2c85a1d5..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/echo.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/eventbridge.png b/content/posts/2022-12-30-micro-hack-eventbridge/eventbridge.png deleted file mode 100644 index 7eb448f0..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/eventbridge.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/github_architecture.png b/content/posts/2022-12-30-micro-hack-eventbridge/github_architecture.png deleted file mode 100644 index 97f71d26..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/github_architecture.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/index.md b/content/posts/2022-12-30-micro-hack-eventbridge/index.md deleted file mode 100644 index a8728732..00000000 --- a/content/posts/2022-12-30-micro-hack-eventbridge/index.md +++ /dev/null @@ -1,396 +0,0 @@ ---- -slug: '2023/01/06/github-event-aws-eventbridge' -title: 'Micro Hack' -subtitle: 'Hands-on guide to deliver GitHHub events to AWS EventBridge' -date: 2023-01-06 -cover: ./cover.jpeg -coverDescription: 'Street art - Kruisstraat' -coverLink: 'https://goo.gl/maps/rSnimx8mH8NFACDo8' -type: post -comments: true -tags: - - aws - - cloud - - github - - serverless - - eventing - - terraform - - micro hack -authors: - - niek ---- - -_In this post, we explore (POC) how we can deliver GitHub evens to the AWS EventBridge and deliver the events to different targets._ - -

- -  Source code for this post

- - -## The context - -With the growing usage of GitHub as well as scaling more self-hosted runners we found a strong need to act more on events sent by GitHub. For the [Self-Hosted runners](https://github.com/philips-labs/terraform-aws-github-runner) we already receiving GitHub events via a webhook. The events are processed by the control plane for scaling the runners. As you can see in the image below events are directly passed from a Lambda to the SQS queue, which makes it hard to use the same event for another independent task. - -![Self-Hosted GitHub runners](runners.png) - -With this runner's solution, we already had the need to process the workflow job evens for monitoring purposes. For example, to calculate the time a job is started after the first event is created, e.g. the job was queued. We introduced a secondary queue to deliver events for analytics. A simple hack but it does immediately not feel right. - -![Self-Hosted GitHub runners monitoring](runners-v2.png) - -The webhook provided by the runner solution is tailored to only accept `workflow_job` events, but we are interested in more events. There are numerous events in which we are interested. Examples are triggering a compliance process when a repository is created, triggering an alarm if even an admin makes a repository public, gather analytics for the lead time of a pull request. Even when we don’t combine a solution, the current solution is not flexible enough to process all kinds of different events with different needs. - -## What's the experiment - -Since GitHub and AWS Cloud are a given, we looking for a better solution to handle the events. And avoiding creating a new webhook, or app for every event we are interested in. We are looking for an event-driven solution to process [GitHub events](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads). We distinguish to main use cases. A hot stream of events to act on directly, and a cold stream for analytics. AWS typically provides you the building blocks, allowing you to compose the solution in several ways. Let's quickly explore our options: - -- [**Simple Notification Service (SNS)](https://aws.amazon.com/sns/):** A lightweight serverless option. A producer (webhook) publishes messages on a topic and subscribers can receive notification via an HTTP/HTTPS endpoint, email, Kinesis, SQS, Lambda, and SMS. With a filter, a subset of messages can be received. -- [EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html): A lightweight serverless option. A producer can (webhook) can publishes messages on the bus. With rules messages can be delivered to targets. Example targets are Lambda, API endpoints, SQS, SNS, Redshift, and many more. The EventBridge also provides an option to redeliver events based on a message Archive. -- [Kinesis](https://aws.amazon.com/kinesis/): A serverless option for handling continuous streams of data in real-time. Kinesis is based or inspired by Kafka, AWS native, and opinionated. -- [Managed Kafka (MSK)](https://aws.amazon.com/msk/): AA server-based option to handle continuous data streams. Kafka is highly configurable and will support most of the use-cases but also is more expensive and requires more knowledge to manage. - -We are looking for a Serverless approach since we have in general not a constant or equally distributed load. And we have a strong preference for a SaaS-managed service instead to have to manage our own services. With these requirements, the [AWS EventBridge](https://aws.amazon.com/eventbridge/) seems a logical candidate to investigate. - -![AWS EventBridge](eventbridge.png) - -The AWS EventBridge allows you to publish from several sources messages. Based on [rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) messages can be transformed and routed to several [targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) such as SQS, SNS, Lambda, RedShift, Firehose Data Steam, API endpoint, and many more. - -In this POC we quickly explore how hard it is to set up an integration between GitHub and the AWS EventBridge to capture events and deliver the to different targets. For the experiment, we limit ourselves to the following targets. - -1. CloudWatch LogGroup: can we get the integration working? -2. Lambda: Can we trigger custom business logic based on events? -3. Firehose Data Stream: Can we build a Data lake in S3? - -![poc](poc.png) - -As the final step, we will re-play the events sent earlier. - -> ⚠️ Code and Terraform examples are not optimized or hardened ⚠️ - -## Let's do it! - -### Deliver GitHub events to CloudWatch LogGroup - -As mentioned we use Terraform to build [our IaC](https://github.com/npalm/experiment-github-events-aws-eventbridge/blob/a16b3d0810f08afec1e9738d6300221aa6bd0319/main.tf#L6-L13). The first entity we need is the event bus. To be able to replay messages later on we create an event archive as well. - -```hcl -locals { - aws_region = "eu-west-1" - prefix = "blog" -} - -resource "aws_cloudwatch_event_bus" "messenger" { - name = "${local.prefix}-messages" -} - -resource "aws_cloudwatch_event_archive" "messenger" { - name = "${local.prefix}-events-archive" - event_source_arn = aws_cloudwatch_event_bus.messenger.arn -} -``` - -The next question is, how can we deliver events from GitHub to the Event Bus? In GitHub, you can define an App with a webhook and subscribe to events. Events will be delivered to the webhook signed with a secret. Be aware that only events for repositories are sent when the app is installed in that repository. Alternatively, you can create a webhook on the enterprise, organization, or repository level. - -Now we know how we can send events, we need a way to receive them in AWS and put them on the Event Bus. AWS recently [announced](https://aws.amazon.com/about-aws/whats-new/2022/08/amazon-eventbridge-supports-receiving-events-github-stripe-twilio-using-webhooks/) a quick start to deliver GitHub events to the Event Bus. - -![github aws](github_architecture.png) - -The AWS quick start creates a Lambda function with an endpoint that you can configure in GitHub as a webhook. The Lambda checks the signature before delivering the messages to the Event Bus. Amazon provides a [CloudFormation template](https://eventbridge-inbound-webhook-templates-prod-eu-west-1.s3.eu-west-1.amazonaws.com/cfn-templates/github/template.yaml) that deploys a webhook to receive GitHub events and publish them on the bus. This setup through the web console is straightforward. It is not clear how the Lambda function code is maintained. Also, there seems not a way to lock the version of the code, the only way to do this is to maintain the code and CloudFormation template yourself. The provided Lambda does not provide any debug logging or configuration option in case you would change the source. GitHub also does not guarantee a max message size, and the AWS EventBridge only allows messages smaller than 256KB. When you would handle large messages differently, Lambda provides no option. Amazon suggests in those cases to download the Lambda from the console and maintaining it yourself. You can also fetch the Lambda zip from [S3](s3://eventbridge-inbound-webhook-templates-prod-eu-west-1/lambda-templates/github-lambdasrc.zip). - -Since we already build a [webhook](https://github.com/philips-labs/terraform-aws-github-runner/blob/main/modules/webhook/lambdas/webhook/src/webhook/handler.ts) to capture the GitHub events, stripping this function down and delivering the messages to the event bus is fairly simple. For now, we build our own function to keep more control. Later we can still decide to move to the AWS route. A webhook to handle the event in TypeScript looks as below, check the full sources on [GitHub](https://github.com/npalm/experiment-github-events-aws-eventbridge/blob/a16b3d0810f08afec1e9738d6300221aa6bd0319/webhook/lambda/src/webhook/handler.ts). - -```typescript - -export async function handle(headers: IncomingHttpHeaders, body: string): Promise { - const { eventBusName, eventSource } = readEnvironmentVariables(); - - const githubEvent = headers['x-github-event'] as string || 'github-event-lambda'; - let response: Response = { - statusCode: await verifySignature(githubEvent, headers, body), - }; - if (response.statusCode != 200) return response; - - // TODO handle messages larger than 256KB - - const client = new EventBridgeClient({ region: process.env.AWS_REGION }); - const command = new PutEventsCommand({ - Entries: [{ - EventBusName: eventBusName, - Source: eventSource, - DetailType: githubEvent, - Detail: body, - }] - }); - - try { - await client.send(command); - } catch (e) { - logger.error(`Failed to send event to EventBridge`, e); - response.statusCode = 500; - } - - return response; -} -``` - -Next, we deploy the function with a function endpoint, keep in mind this endpoint is open to the world. The signature check validates the message. Creating a Lambda with a function url requires Terraform resources like below. See [here](https://github.com/npalm/experiment-github-events-aws-eventbridge/blob/a16b3d0810f08afec1e9738d6300221aa6bd0319/webhook/main.tf) the full example. - -```hcl - -resource "aws_lambda_function_url" "webhook" { - function_name = aws_lambda_function.webhook.function_name - #qualifier = "${var.prefix}-github-webhook" - authorization_type = "NONE" -} - -resource "aws_lambda_function" "webhook" { - filename = local.lambda_zip - source_code_hash = filebase64sha256(local.lambda_zip) - function_name = "${var.prefix}-github-webhook" - role = aws_iam_role.webhook_lambda.arn - handler = "index.githubWebhook" - runtime = "nodejs18.x" - - environment { - variables = { - EVENT_BUS_NAME = var.event_bus.name - EVENT_SOURCE = "github.com" - PARAMETER_GITHUB_APP_WEBHOOK_SECRET = "SOME_BETTER_SECRET" - } - } -} - -# roles and policies omitted - -``` - -After creating the Terraform resources we can test our webhook. A simple way to test events is by creating a test issue and ensuring your App or webhook is subscribed to events on issues. For the App, you can check the status of events in the advanced section of the App settings. You can redeliver the event here as well, quite handy for testing! - -![issue](issue.png) - -After creating an Issue we should see in AWS that our Lambda is triggered. On the Event Bus, we can’t see the event. The next step is to deliver the event to a target. The first target we define for the test is a CooudWatch Log Group. Just for testing purposes. - -Before events can be delivered to a target, an event rule needs to be created. For now, we forward all events from GitHub to the rule. - -```hcl - -resource "aws_cloudwatch_event_rule" "all" { - name = "${local.prefix}-github-events-all" - description = "Caputure all GitHub events" - event_bus_name = aws_cloudwatch_event_bus.messenger.name - event_pattern = < { - logger.info("Handling event: " + JSON.stringify(event)); -} -``` - -Details for the echo Lambda function are implemented in a module, similar to the webhook discussed earlier. This means we only have to add the modules to our `main.tf`. The [module `echo`](https://github.com/npalm/experiment-github-events-aws-eventbridge/tree/main/echo) is implementing the Lambda function and declares the required Terraform resources. The second module, [`event_rule_target_lambda`](https://github.com/npalm/experiment-github-events-aws-eventbridge/tree/main/event_rule_target_lambda) is similar to the one we created from the log group before. But now tailored to a Lambda target. - -```hcl - -module "echo" { - source = "./echo" - - prefix = local.prefix -} - -module "event_rule_target_lambda" { - source = "./event_rule_target_lambda" - - target = { - arn = module.echo.lambda.arn - name = module.echo.lambda.function_name - } - event_bus_name = aws_cloudwatch_event_bus.messenger.name - event_rule = { - arn = aws_cloudwatch_event_rule.all.arn - name = aws_cloudwatch_event_rule.all.name - } -} -``` - -When you trigger a new event or update the issue created before. The Lambda will be invoked and in the logging of the lambda, the event is printed. Not very useful, but remember we only check the pattern here. - -![lambda echo](echo.png) - -### Build a Data Lake in S3 - -The last target we checking now is Firehose delivery stream. With the Firehose stream, we deliver the message to S3 to mimic a Data Lake. With the following Terraform resources, you create a Firehose delivery stream to S3, configuration is standard. This means that data is cached till 5MB is received or 300 seconds are passed. - -``` -resource "random_uuid" "firehose_stream" {} - -resource "aws_s3_bucket" "firehose_stream" { - bucket = "${local.prefix}-${random_uuid.firehose_stream.result}" - force_destroy = true -} - -resource "aws_s3_bucket_acl" "firehose_stream" { - bucket = aws_s3_bucket.firehose_stream.id - acl = "private" -} - -data "aws_iam_policy_document" "firehose_assume_role_policy" { - statement { - actions = ["sts:AssumeRole"] - - principals { - type = "Service" - identifiers = ["firehose.amazonaws.com"] - } - } -} - -resource "aws_iam_role" "firehose_role" { - name = "${local.prefix}-firehose-role" - assume_role_policy = data.aws_iam_policy_document.firehose_assume_role_policy.json -} - -resource "aws_iam_role_policy" "firehose_s3" { - name = "${local.prefix}-s3" - role = aws_iam_role.firehose_role.name - policy = templatefile("${path.module}/policies/firehose-s3.json", { - s3_bucket_arn = aws_s3_bucket.firehose_stream.arn - }) -} - -resource "aws_kinesis_firehose_delivery_stream" "extended_s3_stream" { - name = "${local.prefix}-stream" - destination = "extended_s3" - - extended_s3_configuration { - role_arn = aws_iam_role.firehose_role.arn - bucket_arn = aws_s3_bucket.firehose_stream.arn - } -} - -``` - -And like before we have created [module](https://github.com/npalm/experiment-github-events-aws-eventbridge/tree/a16b3d0810f08afec1e9738d6300221aa6bd0319/event_rule_target_firehose_s3_stream) to connect the Firehose as the target to the event rule. - -```hcl -module "event_rule_target_firehose_s3_stream" { - source = "./event_rule_target_firehose_s3_stream" - - target = { - arn = aws_kinesis_firehose_delivery_stream.extended_s3_stream.arn - name = aws_kinesis_firehose_delivery_stream.extended_s3_stream.name - } - event_bus_name = aws_cloudwatch_event_bus.messenger.name - event_rule = { - arn = aws_cloudwatch_event_rule.all.arn - name = aws_cloudwatch_event_rule.all.name - } -} -``` - -And to test our Data Lake we have to trigger some events again. After 5 five minutes you should see the first objects appearing in the S3 bucket. - -![s3](s3.png) - -### Replay - -The final question we would like to answer is, can we replay messages. We already have created a message archive. A replay can be initiated via the web console or CLI. In the web console navigate to the EventBus and select Replay. Next set the time windows and source for which you replay messages. After starting the job you should see messages appearing again in your targets. - -![replay](replay.png) - -## Conclusion - -Delivering messages from GitHub to AWS is straightforward with the AWS Eventbridge. As mentioned have some doubts to use the Amazon integration with GitHub today. Since it is not clear how to code is managed. And when not using Terraform you have to extract the webhook code from the CloudFormation template or Lambda. But on the other hand, this is nothing keeping us back. You should make your own judgment here. At this moment we will most likely build an maintain our own Lambda to ensure we can deal properly with cases when the messages exceed the maximum size of 256KB supported by the EventBridge. - -Messages delivered to the EventBridge are forwarded to targets based on rules. In a rule, you specify matching criteria. This can be coarse-grained like we did. We matched the event only based on the source. When there is no EventRule that matches a message, the message ends up in `/dev/null` and you will get no notification that you missed something. This is not a problem, but should be considered and is more or less the opposite of SNS where you get all the messages unless you filter. - -Looking at our current hacky approach, the way we delegate events for monitoring purposes to a second SQS queue, a move to AWS EventBridge seems much more flexible. And avoid tailoring the code. With a move to the AWS EventBridge, our solution could transform as follow. - -![solution](runners-3.png) - -The EventBridge is priced roughly with 1$ per 1 million messages published calculated in blocks of 64KB. Today we handle roughly 1 million messages a month for only the `workflow_job` event. When we start listening for many events this will likely double a few times. Besides that, you have to think about the costs of running the Lambda to handle the events. And finally, you will make costs to process the events. - -Rate limits and quotas should also be considered. The [EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html#eb-putevents-limits) for `PutEvents` per region vary from 10.000 per second to 400 per second. The messages posted on the EventBirdge should not exceed 256KB, similar to SQS and SNS. It seems many events in GitHub are relatively small, but for example, the `push` event can be big in case many branches and tags are pushed at once. When you start writing Lamba’s to handle events that require GitHub API calls, you should also think about the [GitHub API rate limits](https://docs.github.com/en/developers/apps/building-github-apps/rate-limits-for-github-apps). Using a personal access token (bad idea) you have a limit of 5000 API calls per hour. For a GitHub App this can be up to 15.000 per hour. - -The AWS EventBridge seems to be a good option to start building a solution to handle GitHub events for building a Data lake as well as acting directly on events. In case you keep your architecture nicely lost coupled you can always move to the Ferrari, Kafka, for Eventing. \ No newline at end of file diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/issue.png b/content/posts/2022-12-30-micro-hack-eventbridge/issue.png deleted file mode 100644 index 84179699..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/issue.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/poc.png b/content/posts/2022-12-30-micro-hack-eventbridge/poc.png deleted file mode 100644 index 0083e67f..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/poc.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/replay.png b/content/posts/2022-12-30-micro-hack-eventbridge/replay.png deleted file mode 100644 index eb76bdea..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/replay.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/runners-3.png b/content/posts/2022-12-30-micro-hack-eventbridge/runners-3.png deleted file mode 100644 index 9b89bb28..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/runners-3.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/runners-v2.png b/content/posts/2022-12-30-micro-hack-eventbridge/runners-v2.png deleted file mode 100644 index 041dadc8..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/runners-v2.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/runners.png b/content/posts/2022-12-30-micro-hack-eventbridge/runners.png deleted file mode 100644 index 4742fd96..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/runners.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/s3.png b/content/posts/2022-12-30-micro-hack-eventbridge/s3.png deleted file mode 100644 index a3a71579..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/s3.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/workflow copy.png b/content/posts/2022-12-30-micro-hack-eventbridge/workflow copy.png deleted file mode 100644 index ff502bd4..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/workflow copy.png and /dev/null differ diff --git a/content/posts/2022-12-30-micro-hack-eventbridge/workflow.png b/content/posts/2022-12-30-micro-hack-eventbridge/workflow.png deleted file mode 100644 index ff502bd4..00000000 Binary files a/content/posts/2022-12-30-micro-hack-eventbridge/workflow.png and /dev/null differ