From b77dec34dc1ffdc0201674db563531c48aae2ead Mon Sep 17 00:00:00 2001 From: Jennifer Echenim Date: Tue, 11 Jun 2024 14:00:45 +0100 Subject: [PATCH 1/9] fix: logo --- .../walletextension/frontend/src/components/layouts/header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/walletextension/frontend/src/components/layouts/header.tsx b/tools/walletextension/frontend/src/components/layouts/header.tsx index 3a2e59b40a..a04de0fea8 100644 --- a/tools/walletextension/frontend/src/components/layouts/header.tsx +++ b/tools/walletextension/frontend/src/components/layouts/header.tsx @@ -14,7 +14,7 @@ export default function Header() {
Logo Date: Tue, 11 Jun 2024 14:02:16 +0100 Subject: [PATCH 2/9] Fix X-Frame-Options and X-Content-Type-Options meta tags --- tools/walletextension/frontend/src/components/head-seo.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/walletextension/frontend/src/components/head-seo.tsx b/tools/walletextension/frontend/src/components/head-seo.tsx index 26a475374a..e8edfa57a0 100644 --- a/tools/walletextension/frontend/src/components/head-seo.tsx +++ b/tools/walletextension/frontend/src/components/head-seo.tsx @@ -25,9 +25,9 @@ const HeadSeo = ({ signature="_vd3udx2g2hfn9zclob5cat43b94q7fyk" > {/* SECURITY: to prevent the page from being loaded in an iFrame */} - + {/* to indicate the browser shouldn't interpret the response as something other than the specified content type */} - + {/* The Content-Security-Policy header is used to prevent a wide range of attacks, including Cross-Site Scripting (XSS) and other cross-site injections. */} {/* twitter metadata */} From 03d8ca8ee01e8d89f139bde96010e83daf53539c Mon Sep 17 00:00:00 2001 From: Jennifer Echenim Date: Tue, 11 Jun 2024 14:02:32 +0100 Subject: [PATCH 3/9] Fix bug in next/image --- .../frontend/package-lock.json | 206 ++++++++++-------- 1 file changed, 111 insertions(+), 95 deletions(-) diff --git a/tools/walletextension/frontend/package-lock.json b/tools/walletextension/frontend/package-lock.json index 6563816a4e..f11c2583a5 100644 --- a/tools/walletextension/frontend/package-lock.json +++ b/tools/walletextension/frontend/package-lock.json @@ -953,9 +953,9 @@ } }, "node_modules/@next/env": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", - "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==" + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", + "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.0.3", @@ -967,9 +967,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", - "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz", + "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==", "cpu": [ "arm64" ], @@ -982,9 +982,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", - "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz", + "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==", "cpu": [ "x64" ], @@ -997,9 +997,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", - "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz", + "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==", "cpu": [ "arm64" ], @@ -1012,9 +1012,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", - "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz", + "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==", "cpu": [ "arm64" ], @@ -1027,9 +1027,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", - "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz", + "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==", "cpu": [ "x64" ], @@ -1042,9 +1042,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", - "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz", + "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==", "cpu": [ "x64" ], @@ -1057,9 +1057,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", - "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz", + "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==", "cpu": [ "arm64" ], @@ -1072,9 +1072,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", - "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz", + "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==", "cpu": [ "ia32" ], @@ -1087,9 +1087,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", - "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz", + "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==", "cpu": [ "x64" ], @@ -1903,11 +1903,17 @@ "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==", "dev": true }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, "node_modules/@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", "dependencies": { + "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, @@ -4978,12 +4984,12 @@ "dev": true }, "node_modules/next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", - "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz", + "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==", "dependencies": { - "@next/env": "14.1.0", - "@swc/helpers": "0.5.2", + "@next/env": "14.2.3", + "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "graceful-fs": "^4.2.11", @@ -4997,18 +5003,19 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.1.0", - "@next/swc-darwin-x64": "14.1.0", - "@next/swc-linux-arm64-gnu": "14.1.0", - "@next/swc-linux-arm64-musl": "14.1.0", - "@next/swc-linux-x64-gnu": "14.1.0", - "@next/swc-linux-x64-musl": "14.1.0", - "@next/swc-win32-arm64-msvc": "14.1.0", - "@next/swc-win32-ia32-msvc": "14.1.0", - "@next/swc-win32-x64-msvc": "14.1.0" + "@next/swc-darwin-arm64": "14.2.3", + "@next/swc-darwin-x64": "14.2.3", + "@next/swc-linux-arm64-gnu": "14.2.3", + "@next/swc-linux-arm64-musl": "14.2.3", + "@next/swc-linux-x64-gnu": "14.2.3", + "@next/swc-linux-x64-musl": "14.2.3", + "@next/swc-win32-arm64-msvc": "14.2.3", + "@next/swc-win32-ia32-msvc": "14.2.3", + "@next/swc-win32-x64-msvc": "14.2.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" @@ -5017,6 +5024,9 @@ "@opentelemetry/api": { "optional": true }, + "@playwright/test": { + "optional": true + }, "sass": { "optional": true } @@ -7361,9 +7371,9 @@ } }, "@next/env": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", - "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==" + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", + "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==" }, "@next/eslint-plugin-next": { "version": "14.0.3", @@ -7375,57 +7385,57 @@ } }, "@next/swc-darwin-arm64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", - "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz", + "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==", "optional": true }, "@next/swc-darwin-x64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", - "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz", + "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", - "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz", + "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", - "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz", + "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", - "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz", + "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", - "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz", + "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", - "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz", + "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", - "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz", + "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", - "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz", + "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==", "optional": true }, "@nodelib/fs.scandir": { @@ -7861,11 +7871,17 @@ "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==", "dev": true }, + "@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, "@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", "requires": { + "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, @@ -10111,21 +10127,21 @@ "dev": true }, "next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", - "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", - "requires": { - "@next/env": "14.1.0", - "@next/swc-darwin-arm64": "14.1.0", - "@next/swc-darwin-x64": "14.1.0", - "@next/swc-linux-arm64-gnu": "14.1.0", - "@next/swc-linux-arm64-musl": "14.1.0", - "@next/swc-linux-x64-gnu": "14.1.0", - "@next/swc-linux-x64-musl": "14.1.0", - "@next/swc-win32-arm64-msvc": "14.1.0", - "@next/swc-win32-ia32-msvc": "14.1.0", - "@next/swc-win32-x64-msvc": "14.1.0", - "@swc/helpers": "0.5.2", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz", + "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==", + "requires": { + "@next/env": "14.2.3", + "@next/swc-darwin-arm64": "14.2.3", + "@next/swc-darwin-x64": "14.2.3", + "@next/swc-linux-arm64-gnu": "14.2.3", + "@next/swc-linux-arm64-musl": "14.2.3", + "@next/swc-linux-x64-gnu": "14.2.3", + "@next/swc-linux-x64-musl": "14.2.3", + "@next/swc-win32-arm64-msvc": "14.2.3", + "@next/swc-win32-ia32-msvc": "14.2.3", + "@next/swc-win32-x64-msvc": "14.2.3", + "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "graceful-fs": "^4.2.11", From 0a825d741dd3629dbdd45191a1268cca2aef8652 Mon Sep 17 00:00:00 2001 From: Jennifer Echenim Date: Tue, 11 Jun 2024 15:04:30 +0100 Subject: [PATCH 4/9] refactor: - logo relative path to cater to static files server --- tools/walletextension/frontend/src/components/head-seo.tsx | 4 ++-- .../frontend/src/components/layouts/header.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/walletextension/frontend/src/components/head-seo.tsx b/tools/walletextension/frontend/src/components/head-seo.tsx index e8edfa57a0..26a475374a 100644 --- a/tools/walletextension/frontend/src/components/head-seo.tsx +++ b/tools/walletextension/frontend/src/components/head-seo.tsx @@ -25,9 +25,9 @@ const HeadSeo = ({ signature="_vd3udx2g2hfn9zclob5cat43b94q7fyk" > {/* SECURITY: to prevent the page from being loaded in an iFrame */} - + {/* to indicate the browser shouldn't interpret the response as something other than the specified content type */} - + {/* The Content-Security-Policy header is used to prevent a wide range of attacks, including Cross-Site Scripting (XSS) and other cross-site injections. */} {/* twitter metadata */} diff --git a/tools/walletextension/frontend/src/components/layouts/header.tsx b/tools/walletextension/frontend/src/components/layouts/header.tsx index a04de0fea8..9a1946c88c 100644 --- a/tools/walletextension/frontend/src/components/layouts/header.tsx +++ b/tools/walletextension/frontend/src/components/layouts/header.tsx @@ -14,14 +14,14 @@ export default function Header() {
Logo Logo Date: Sun, 23 Jun 2024 23:29:30 +0200 Subject: [PATCH 5/9] EDB Connect: Add db query tool (#1963) --- .../workflows/manual-deploy-testnet-l2.yml | 3 + go.mod | 1 + go.sum | 7 + .../storage/init/edgelessdb/edgelessdb.go | 27 +-- integration/common/testlog/testlog.go | 9 + tools/edbconnect/Dockerfile | 41 +++++ tools/edbconnect/edb-connect.sh | 43 +++++ tools/edbconnect/main/edb-enclave.json | 19 ++ tools/edbconnect/main/main.go | 168 ++++++++++++++++++ tools/edbconnect/main/testnet.pem | 39 ++++ 10 files changed, 344 insertions(+), 13 deletions(-) create mode 100644 tools/edbconnect/Dockerfile create mode 100644 tools/edbconnect/edb-connect.sh create mode 100644 tools/edbconnect/main/edb-enclave.json create mode 100644 tools/edbconnect/main/main.go create mode 100644 tools/edbconnect/main/testnet.pem diff --git a/.github/workflows/manual-deploy-testnet-l2.yml b/.github/workflows/manual-deploy-testnet-l2.yml index ce7c72a9e0..93e3ba6635 100644 --- a/.github/workflows/manual-deploy-testnet-l2.yml +++ b/.github/workflows/manual-deploy-testnet-l2.yml @@ -224,6 +224,9 @@ jobs: --command-id RunShellScript \ --scripts 'mkdir -p /home/obscuro \ && git clone --depth 1 -b ${{ env.BRANCH_NAME }} https://github.com/ten-protocol/go-ten.git /home/obscuro/go-obscuro \ + && cp /home/obscuro/go-obscuro/tools/edbconnect/edb-connect.sh /home/obscurouser/edb-connect.sh \ + && chown obscurouser:obscurouser /home/obscurouser/edb-connect.sh \ + && chmod u+x /home/obscurouser/edb-connect.sh \ && docker network create --driver bridge node_network || true \ && docker run -d --name datadog-agent \ --network node_network \ diff --git a/go.mod b/go.mod index bfddf28278..a2ebf7bbac 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/FantasyJony/openzeppelin-merkle-tree-go v1.1.2 github.com/Microsoft/go-winio v0.6.1 github.com/andybalholm/brotli v1.1.0 + github.com/chzyer/readline v1.5.1 github.com/codeclysm/extract/v3 v3.1.1 github.com/deckarep/golang-set/v2 v2.6.0 github.com/dgraph-io/ristretto v0.1.1 diff --git a/go.sum b/go.sum index 1f3cdfd66b..b1bfc4bab2 100644 --- a/go.sum +++ b/go.sum @@ -41,6 +41,12 @@ github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpV github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= +github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= @@ -423,6 +429,7 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/go/enclave/storage/init/edgelessdb/edgelessdb.go b/go/enclave/storage/init/edgelessdb/edgelessdb.go index 06d08e40b9..d9bcab2e7f 100644 --- a/go/enclave/storage/init/edgelessdb/edgelessdb.go +++ b/go/enclave/storage/init/edgelessdb/edgelessdb.go @@ -41,15 +41,15 @@ import ( ) /* - The Obscuro Enclave (OE) needs a way to persist data into a trusted database. Trusted not to reveal that data to anyone but that particular enclave. + The Ten Enclave (TE) needs a way to persist data into a trusted database. Trusted not to reveal that data to anyone but that particular enclave. - To achieve this, the OE must first perform Remote Attestation (RA), which gives it confidence that it is connected to + To achieve this, the TE must first perform Remote Attestation (RA), which gives it confidence that it is connected to a trusted version of software running on trusted hardware. The result of this process is a Certificate which can be used to set up a trusted TLS connection into the database. - The next step is to configure the database schema and users in such a way that the OE knows that the db engine will + The next step is to configure the database schema and users in such a way that the TE knows that the db engine will only allow itself access to it. This is achieved by creating a "Manifest" file that contains the SQL init code and a - DBClient Certificate that is known only to the OE. + DBClient Certificate that is known only to the TE. This "DBClient" Cert is used by the database to authenticate that it is communicating to the entity that has initialised that schema. @@ -130,6 +130,7 @@ type Credentials struct { UserKeyPEM string // db user private key, generated in our enclave } +// Connector (re-)establishes a connection to the Edgeless DB for the Ten enclave func Connector(edbCfg *Config, config config.EnclaveConfig, logger gethlog.Logger) (enclavedb.EnclaveDB, error) { // rather than fail immediately if EdgelessDB is not available yet we wait up for `edgelessDBStartTimeout` for it to be available err := waitForEdgelessDBToStart(edbCfg.Host, logger) @@ -143,12 +144,12 @@ func Connector(edbCfg *Config, config config.EnclaveConfig, logger gethlog.Logge return nil, err } - tlsCfg, err := createTLSCfg(edbCredentials) + tlsCfg, err := CreateTLSCfg(edbCredentials) if err != nil { return nil, err } - sqlDB, err := connectToEdgelessDB(edbCfg.Host, tlsCfg, logger) + sqlDB, err := ConnectToEdgelessDB(edbCfg.Host, tlsCfg, logger) if err != nil { return nil, err } @@ -183,7 +184,7 @@ func waitForEdgelessDBToStart(edbHost string, logger gethlog.Logger) error { func getHandshakeCredentials(enclaveConfig config.EnclaveConfig, edbCfg *Config, logger gethlog.Logger) (*Credentials, error) { // if we have previously performed the handshake we can retrieve the creds from disk and proceed - edbCreds, found, err := loadCredentialsFromFile() + edbCreds, found, err := LoadCredentialsFromFile() if err != nil { return nil, err } @@ -198,8 +199,8 @@ func getHandshakeCredentials(enclaveConfig config.EnclaveConfig, edbCfg *Config, return edbCreds, nil } -// loadCredentialsFromFile returns (credentials object, found flag, error), if file not found it will return nil error but found=false -func loadCredentialsFromFile() (*Credentials, bool, error) { +// LoadCredentialsFromFile returns (credentials object, found flag, error), if file not found it will return nil error but found=false +func LoadCredentialsFromFile() (*Credentials, bool, error) { b, err := egoutils.ReadAndUnseal(edbCredentialsFilepath) if err != nil { if os.IsNotExist(err) { @@ -227,8 +228,8 @@ func performHandshake(enclaveConfig config.EnclaveConfig, edbCfg *Config, logger // the RA will ensure that we are connecting to a database that will not leak any data. // The RA will return a Certificate which we'll use for the TLS mutual authentication when we connect to the database. // The trust path is as follows: - // 1. The Obscuro Enclave performs RA on the database enclave, and the RA object contains a certificate which only the database enclave controls. - // 2. Connecting to the database via mutually authenticated TLS using the above certificate, will give the Obscuro enclave confidence that it is only giving data away to some code and hardware it trusts. + // 1. The Ten Enclave performs RA on the database enclave, and the RA object contains a certificate which only the database enclave controls. + // 2. Connecting to the database via mutually authenticated TLS using the above certificate, will give the Ten enclave confidence that it is only giving data away to some code and hardware it trusts. edbPEM, err := performEDBRemoteAttestation(enclaveConfig, edbCfg.Host, defaultEDBConstraints, logger) if err != nil { return nil, err @@ -304,7 +305,7 @@ func createManifestFormat(content string) (result []string) { return } -func createTLSCfg(creds *Credentials) (*tls.Config, error) { +func CreateTLSCfg(creds *Credentials) (*tls.Config, error) { caCertPool := x509.NewCertPool() if ok := caCertPool.AppendCertsFromPEM([]byte(creds.EDBCACertPEM)); !ok { @@ -458,7 +459,7 @@ func verifyEdgelessDB(edbHost string, m *manifest, httpClient *http.Client, logg return nil } -func connectToEdgelessDB(edbHost string, tlsCfg *tls.Config, logger gethlog.Logger) (*sql.DB, error) { +func ConnectToEdgelessDB(edbHost string, tlsCfg *tls.Config, logger gethlog.Logger) (*sql.DB, error) { err := mysql.RegisterTLSConfig("custom", tlsCfg) if err != nil { return nil, fmt.Errorf("failed to register tls config for mysql connection - %w", err) diff --git a/integration/common/testlog/testlog.go b/integration/common/testlog/testlog.go index 67493fa90d..3387f65d16 100644 --- a/integration/common/testlog/testlog.go +++ b/integration/common/testlog/testlog.go @@ -56,3 +56,12 @@ func Setup(cfg *Cfg) *os.File { testlog = gethlog.New(log.CmpKey, log.TestLogCmp) return f } + +// SetupSysOut will direct the test logs to stdout +func SetupSysOut() { + err := debug.Setup("terminal", "", false, 10000000, 0, 0, false, false, slog.LevelDebug, "") + if err != nil { + panic(err) + } + testlog = gethlog.New(log.CmpKey, log.TestLogCmp) +} diff --git a/tools/edbconnect/Dockerfile b/tools/edbconnect/Dockerfile new file mode 100644 index 0000000000..d8428035c0 --- /dev/null +++ b/tools/edbconnect/Dockerfile @@ -0,0 +1,41 @@ +# Build Stages: +# build-base = downloads modules and prepares the directory for compilation. Based on the ego-dev image +# build-enclave = copies over the actual source code of the project and builds it using a compiler cache +# deploy = copies over only the enclave executable without the source +# in a lightweight base image specialized for deployment and prepares the /data/ folder. + +FROM ghcr.io/edgelesssys/ego-dev:v1.5.0 AS build-base + +# setup container data structure +RUN mkdir -p /home/ten/go-ten + +# Ensures container layer caching when dependencies are not changed +WORKDIR /home/ten/go-ten +COPY go.mod . +COPY go.sum . +RUN ego-go mod download + +# Trigger new build stage for compiling the enclave +FROM build-base as build-enclave +COPY . . + +WORKDIR /home/ten/go-ten/tools/edbconnect/main + +# Build the enclave using the cross image build cache. +RUN --mount=type=cache,target=/root/.cache/go-build \ + ego-go build + +# New build stage for compiling the enclave with restricted flags mode +FROM build-enclave as sign-built-enclave +# Sign the enclave executable +RUN ego sign edb-enclave.json + + +# Trigger a new build stage and use the smaller ego version: +FROM ghcr.io/edgelesssys/ego-deploy:v1.5.0 + +# Copy the binary and the entrypoint script +COPY --from=sign-built-enclave \ + /home/ten/go-ten/tools/edbconnect/main /home/ten/go-ten/tools/edbconnect/main + +WORKDIR /home/ten/go-ten/tools/edbconnect/main diff --git a/tools/edbconnect/edb-connect.sh b/tools/edbconnect/edb-connect.sh new file mode 100644 index 0000000000..37d14c740a --- /dev/null +++ b/tools/edbconnect/edb-connect.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Variables +IMAGE_NAME="testnetobscuronet.azurecr.io/obscuronet/edbconnect:latest" +CONTAINER_BASE_NAME="edb-connect" +UNIQUE_ID=$(date +%s%3N) # Using milliseconds for uniqueness +CONTAINER_NAME="${CONTAINER_BASE_NAME}-${UNIQUE_ID}" +VOLUME_NAME="obscuronode-enclave-volume" +NETWORK_NAME="node_network" +SGX_ENCLAVE_DEVICE="/dev/sgx_enclave" +SGX_PROVISION_DEVICE="/dev/sgx_provision" +COMMAND="ego run /home/ten/go-ten/tools/edbconnect/main/main" + +# Function to destroy exited containers matching the base name +destroy_exited_containers() { + exited_containers=$(sudo docker ps -a -q -f name=${CONTAINER_BASE_NAME} -f status=exited) + if [ "$exited_containers" ];then + echo "Removing exited containers matching ${CONTAINER_BASE_NAME}..." + sudo docker rm $exited_containers || true + else + echo "No exited containers to remove." + fi +} + +# Destroy exited containers that match the base name +destroy_exited_containers + +# Pull the latest image from Azure Docker repository +echo "Pulling the latest Docker image..." +sudo docker pull $IMAGE_NAME + +# Run the container with the specified command +echo "Running the new container with name ${CONTAINER_NAME}..." +sudo docker run --name $CONTAINER_NAME \ + --network $NETWORK_NAME \ + -v $VOLUME_NAME:/enclavedata \ + --device $SGX_ENCLAVE_DEVICE:$SGX_ENCLAVE_DEVICE:rwm \ + --device $SGX_PROVISION_DEVICE:$SGX_PROVISION_DEVICE:rwm \ + -it $IMAGE_NAME $COMMAND + +# After the REPL exits, destroy the container +echo "Destroying the container ${CONTAINER_NAME} after command exits..." +sudo docker rm $CONTAINER_NAME || true \ No newline at end of file diff --git a/tools/edbconnect/main/edb-enclave.json b/tools/edbconnect/main/edb-enclave.json new file mode 100644 index 0000000000..66ac4e2284 --- /dev/null +++ b/tools/edbconnect/main/edb-enclave.json @@ -0,0 +1,19 @@ +{ + "exe": "main", + "key": "testnet.pem", + "debug": true, + "heapSize": 1024, + "executableHeap": true, + "productID": 1, + "securityVersion": 1, + "mounts": [ + { + "source": "/enclavedata", + "target": "/data", + "type": "hostfs", + "readOnly": false + } + ], + "env": [ + ] +} \ No newline at end of file diff --git a/tools/edbconnect/main/main.go b/tools/edbconnect/main/main.go new file mode 100644 index 0000000000..42b2c265b8 --- /dev/null +++ b/tools/edbconnect/main/main.go @@ -0,0 +1,168 @@ +package main + +import ( + "bufio" + "database/sql" + "fmt" + "os" + "strings" + + "github.com/ten-protocol/go-ten/go/enclave/storage/init/edgelessdb" + "github.com/ten-protocol/go-ten/integration/common/testlog" +) + +func main() { + fmt.Println("Retrieving Edgeless DB credentials...") + creds, found, err := edgelessdb.LoadCredentialsFromFile() + if err != nil { + fmt.Println("Error loading credentials from file:", err) + panic(err) + } + if !found { + panic("No existing EDB credentials found.") + } + fmt.Println("Found existing EDB credentials. Creating TLS config...") + cfg, err := edgelessdb.CreateTLSCfg(creds) + if err != nil { + fmt.Println("Error creating TLS config from credentials:", err) + panic(err) + } + fmt.Println("TLS config created. Connecting to Edgeless DB...") + testlog.SetupSysOut() + db, err := edgelessdb.ConnectToEdgelessDB("obscuronode-edgelessdb", cfg, testlog.Logger()) + if err != nil { + fmt.Println("Error connecting to Edgeless DB:", err) + panic(err) + } + fmt.Println("Connected to Edgeless DB.") + + startREPL(db) + + err = db.Close() + if err != nil { + fmt.Println("Error closing Edgeless DB connection:", err) + panic(err) + } +} + +// Starts a loop that reads user input and runs queries against the Edgeless DB until user types "exit" +func startREPL(db *sql.DB) { + for { + fmt.Println("\nEnter a query to run against the Edgeless DB (or type 'exit' to quit):") + reader := bufio.NewReader(os.Stdin) + fmt.Print(">>> ") // Display the prompt + + query, err := reader.ReadString('\n') + if err != nil { + fmt.Println("Error reading user input:", err) + continue + } + // Trim the newline character and surrounding whitespace + query = strings.TrimSpace(query) + + // line break for readability + fmt.Println() + + if query == "" { + continue + } + + if query == "exit" { + break + } + + // Determine the type of query, so we can show appropriate output + queryType := strings.ToUpper(strings.Split(query, " ")[0]) + switch queryType { + case "SELECT", "SHOW", "DESCRIBE", "DESC", "EXPLAIN": + // output rows + runQuery(db, query) + default: + // output number of rows affected + runExec(db, query) + } + } + fmt.Println("Exiting...") +} + +func runQuery(db *sql.DB, query string) { + rows, err := db.Query(query) + if err != nil { + fmt.Println("Error executing query:", err) + return + } + defer rows.Close() + + cols, err := rows.Columns() + if err != nil { + fmt.Println("Error fetching columns:", err) + return + } + + // Print column headers + for _, colName := range cols { + fmt.Printf("%s\t", colName) + } + fmt.Println() + + // Prepare a slice to hold the values + values := make([]interface{}, len(cols)) + valuePtrs := make([]interface{}, len(cols)) + for rows.Next() { + for i := range values { + valuePtrs[i] = &values[i] + } + + err = rows.Scan(valuePtrs...) + if err != nil { + fmt.Println("Error scanning row:", err) + return + } + + // Print the row values + for _, val := range values { + // Handle NULL values and convert byte slices to strings + switch v := val.(type) { + case nil: + fmt.Print("NULL\t") + case []byte: + if isPrintableString(v) { + fmt.Printf("%s\t", string(v)) + } else { + fmt.Printf("%x\t", v) // Print binary data as hexadecimal + } + default: + fmt.Printf("%v\t", v) + } + } + fmt.Println() + } + + if err = rows.Err(); err != nil { + fmt.Println("Error during row iteration:", err) + } +} + +func runExec(db *sql.DB, query string) { + result, err := db.Exec(query) + if err != nil { + fmt.Println("Error executing query against Edgeless DB:", err) + return + } + rowsAffected, err := result.RowsAffected() + if err != nil { + fmt.Println("Error getting number of rows affected:", err) + return + } + fmt.Println("Number of rows affected:", rowsAffected) +} + +// isPrintableString checks if a byte slice contains only printable characters +func isPrintableString(data []byte) bool { + for _, b := range data { + if b < 32 || b > 126 { + return false + } + } + return true +} diff --git a/tools/edbconnect/main/testnet.pem b/tools/edbconnect/main/testnet.pem new file mode 100644 index 0000000000..832ae56944 --- /dev/null +++ b/tools/edbconnect/main/testnet.pem @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- From e1c912430f2baa298f96cf9a0e57f7a396e5f6a4 Mon Sep 17 00:00:00 2001 From: Tudor Malene Date: Tue, 25 Jun 2024 10:24:10 +0100 Subject: [PATCH 6/9] Rework event logs and transaction database schema (#1961) * rework event logs * fix contract count * fix * optimize transaction storage * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * remove unused method * fixes * fixes * fixes * revert change * fixes --- .github/workflows/build-gateway-lib.yml | 2 +- .github/workflows/build-pr.yml | 6 +- .github/workflows/deploy-gateway-lib.yml | 2 +- .github/workflows/hardhat-pr-check.yml | 2 +- .../manual-deploy-dexynth-gateway.yml | 2 +- ...manual-deploy-obscuro-gateway-database.yml | 2 +- .../manual-deploy-obscuro-gateway.yml | 2 +- .../manual-deploy-ten-gateway-frontend.yml | 2 +- .github/workflows/manual-deploy-ten-scan.yml | 2 +- .../manual-deploy-testnet-faucet.yml | 2 +- .../workflows/manual-deploy-testnet-l1.yml | 2 +- .../workflows/manual-deploy-testnet-l2.yml | 14 +- .../manual-deploy-testnet-validator.yml | 8 +- .../manual-recover-network-funds.yml | 4 +- .../workflows/manual-upgrade-testnet-l2.yml | 6 +- go.mod | 1 - go.sum | 7 - go/common/headers.go | 6 + go/enclave/components/batch_executor.go | 54 +- go/enclave/components/batch_registry.go | 49 +- go/enclave/components/interfaces.go | 8 +- go/enclave/components/rollup_compression.go | 14 +- go/enclave/core/batch.go | 6 - go/enclave/enclave.go | 4 +- go/enclave/evm/chain_context.go | 4 +- .../evm/ethchainadapter/eth_chainadapter.go | 4 +- go/enclave/evm/evm_facade.go | 47 +- go/enclave/l2chain/interfaces.go | 2 +- go/enclave/l2chain/l2_chain.go | 45 +- go/enclave/nodetype/common.go | 8 +- go/enclave/nodetype/sequencer.go | 38 +- go/enclave/nodetype/validator.go | 58 ++- go/enclave/rpc/EstimateGas.go | 4 +- go/enclave/rpc/GetBalance.go | 4 +- go/enclave/rpc/GetLogs.go | 4 +- go/enclave/rpc/GetTransactionCount.go | 2 +- go/enclave/storage/enclavedb/batch.go | 260 ++++------ go/enclave/storage/enclavedb/block.go | 20 +- go/enclave/storage/enclavedb/events.go | 335 ++++++------ .../storage/init/edgelessdb/001_init.sql | 115 +++-- go/enclave/storage/init/sqlite/001_init.sql | 128 +++-- go/enclave/storage/interfaces.go | 25 +- go/enclave/storage/storage.go | 482 +++++++++++++++--- go/wallet/wallet.go | 2 +- integration/common/testlog/testlog.go | 4 +- .../tests/helpful/accs_and_contracts_test.go | 1 - integration/tenscan/tenscan_test.go | 2 +- 47 files changed, 1079 insertions(+), 722 deletions(-) diff --git a/.github/workflows/build-gateway-lib.yml b/.github/workflows/build-gateway-lib.yml index 5583b23641..7c936df9b6 100644 --- a/.github/workflows/build-gateway-lib.yml +++ b/.github/workflows/build-gateway-lib.yml @@ -15,7 +15,7 @@ jobs: steps: # Check out the repository - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Set up Node.js - name: Set up Node.js diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index f377b6bc78..1bc3e8ea24 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -14,9 +14,9 @@ jobs: build: runs-on: self-hosted steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: 1.21.8 @@ -57,7 +57,7 @@ jobs: run: go test --failfast -v ./... -count=1 -timeout 5m - name: Store simulation logs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: ci-logs diff --git a/.github/workflows/deploy-gateway-lib.yml b/.github/workflows/deploy-gateway-lib.yml index f1d8b39c24..60132c9584 100644 --- a/.github/workflows/deploy-gateway-lib.yml +++ b/.github/workflows/deploy-gateway-lib.yml @@ -15,7 +15,7 @@ jobs: steps: # Check out the repository - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Set up Node.js - name: Set up Node.js diff --git a/.github/workflows/hardhat-pr-check.yml b/.github/workflows/hardhat-pr-check.yml index 758a59c883..ab6f85a364 100644 --- a/.github/workflows/hardhat-pr-check.yml +++ b/.github/workflows/hardhat-pr-check.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 18 diff --git a/.github/workflows/manual-deploy-dexynth-gateway.yml b/.github/workflows/manual-deploy-dexynth-gateway.yml index 0b51245200..5271686154 100644 --- a/.github/workflows/manual-deploy-dexynth-gateway.yml +++ b/.github/workflows/manual-deploy-dexynth-gateway.yml @@ -25,7 +25,7 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Extract branch name' shell: bash diff --git a/.github/workflows/manual-deploy-obscuro-gateway-database.yml b/.github/workflows/manual-deploy-obscuro-gateway-database.yml index d99b18ec2e..b4eeec0f68 100644 --- a/.github/workflows/manual-deploy-obscuro-gateway-database.yml +++ b/.github/workflows/manual-deploy-obscuro-gateway-database.yml @@ -27,7 +27,7 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Extract branch name' shell: bash diff --git a/.github/workflows/manual-deploy-obscuro-gateway.yml b/.github/workflows/manual-deploy-obscuro-gateway.yml index 622ae25141..4d063d70a7 100644 --- a/.github/workflows/manual-deploy-obscuro-gateway.yml +++ b/.github/workflows/manual-deploy-obscuro-gateway.yml @@ -27,7 +27,7 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Extract branch name' shell: bash diff --git a/.github/workflows/manual-deploy-ten-gateway-frontend.yml b/.github/workflows/manual-deploy-ten-gateway-frontend.yml index 16545153ef..8ac6e17e70 100644 --- a/.github/workflows/manual-deploy-ten-gateway-frontend.yml +++ b/.github/workflows/manual-deploy-ten-gateway-frontend.yml @@ -37,7 +37,7 @@ jobs: echo "Selected Testnet Type: ${{ matrix.testnet_type }}" echo "Gateway API URL: ${{ matrix.GATEWAY_API_URL }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Extract branch name' shell: bash diff --git a/.github/workflows/manual-deploy-ten-scan.yml b/.github/workflows/manual-deploy-ten-scan.yml index 02dd88839d..f6811fd749 100644 --- a/.github/workflows/manual-deploy-ten-scan.yml +++ b/.github/workflows/manual-deploy-ten-scan.yml @@ -27,7 +27,7 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Set up Docker" uses: docker/setup-buildx-action@v1 diff --git a/.github/workflows/manual-deploy-testnet-faucet.yml b/.github/workflows/manual-deploy-testnet-faucet.yml index 9550c78ef8..a6765a89b1 100644 --- a/.github/workflows/manual-deploy-testnet-faucet.yml +++ b/.github/workflows/manual-deploy-testnet-faucet.yml @@ -43,7 +43,7 @@ jobs: - run: echo "Workflow_dispatch inputs ${{ github.event.inputs.testnet_type }}" - run: echo "Workflow_call inputs ${{ inputs.testnet_type }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Set up Docker' uses: docker/setup-buildx-action@v1 diff --git a/.github/workflows/manual-deploy-testnet-l1.yml b/.github/workflows/manual-deploy-testnet-l1.yml index 1accfb5260..b92101dff0 100644 --- a/.github/workflows/manual-deploy-testnet-l1.yml +++ b/.github/workflows/manual-deploy-testnet-l1.yml @@ -39,7 +39,7 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Set up Docker' uses: docker/setup-buildx-action@v1 diff --git a/.github/workflows/manual-deploy-testnet-l2.yml b/.github/workflows/manual-deploy-testnet-l2.yml index 93e3ba6635..e283acb891 100644 --- a/.github/workflows/manual-deploy-testnet-l2.yml +++ b/.github/workflows/manual-deploy-testnet-l2.yml @@ -47,9 +47,9 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 with: go-version: 1.21.8 @@ -124,7 +124,7 @@ jobs: done - name: 'Upload L1 deployer container logs' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: deploy-l1-artifacts path: | @@ -275,7 +275,7 @@ jobs: environment: name: ${{ github.event.inputs.testnet_type }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Wait until obscuro node is healthy" shell: bash @@ -292,7 +292,7 @@ jobs: environment: name: ${{ github.event.inputs.testnet_type }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Deploy L2 contracts' id: deployL2Contracts @@ -316,7 +316,7 @@ jobs: docker logs `docker ps -aqf "name=hh-l2-deployer"` > deploy-l2-contracts.out 2>&1 - name: 'Upload L2 deployer container logs' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: deploy-l2-artifacts path: | @@ -330,7 +330,7 @@ jobs: environment: name: ${{ github.event.inputs.testnet_type }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Login via Azure CLI' uses: azure/login@v1 diff --git a/.github/workflows/manual-deploy-testnet-validator.yml b/.github/workflows/manual-deploy-testnet-validator.yml index 936791f841..cda3c96da4 100644 --- a/.github/workflows/manual-deploy-testnet-validator.yml +++ b/.github/workflows/manual-deploy-testnet-validator.yml @@ -73,9 +73,9 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 with: go-version: 1.21.8 @@ -201,7 +201,7 @@ jobs: # environment: # name: ${{ github.event.inputs.testnet_type }} # steps: -# - uses: actions/checkout@v3 +# - uses: actions/checkout@v4 # # - name: 'Login via Azure CLI' # uses: azure/login@v1 @@ -230,7 +230,7 @@ jobs: environment: name: ${{ github.event.inputs.testnet_type }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Wait until obscuro node is healthy" shell: bash diff --git a/.github/workflows/manual-recover-network-funds.yml b/.github/workflows/manual-recover-network-funds.yml index 4d722a12da..7642d110d9 100644 --- a/.github/workflows/manual-recover-network-funds.yml +++ b/.github/workflows/manual-recover-network-funds.yml @@ -34,7 +34,7 @@ jobs: run: | echo "GitHub Variables = ${{ toJSON(vars) }}" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: 'Login to Azure docker registry' uses: azure/docker-login@v1 @@ -65,7 +65,7 @@ jobs: docker logs `docker ps -aqf "name=recover-funds"` > recover-funds.out 2>&1 - name: 'Upload container logs on failure' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: recover-funds diff --git a/.github/workflows/manual-upgrade-testnet-l2.yml b/.github/workflows/manual-upgrade-testnet-l2.yml index ecc8e05254..33395c9074 100644 --- a/.github/workflows/manual-upgrade-testnet-l2.yml +++ b/.github/workflows/manual-upgrade-testnet-l2.yml @@ -43,9 +43,9 @@ jobs: VM_BUILD_NUMBER: ${{ steps.outputVars.outputs.VM_BUILD_NUMBER }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 with: go-version: 1.21.8 @@ -188,7 +188,7 @@ jobs: environment: name: ${{ github.event.inputs.testnet_type }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Wait until obscuro node is healthy" shell: bash diff --git a/go.mod b/go.mod index a2ebf7bbac..bfddf28278 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/FantasyJony/openzeppelin-merkle-tree-go v1.1.2 github.com/Microsoft/go-winio v0.6.1 github.com/andybalholm/brotli v1.1.0 - github.com/chzyer/readline v1.5.1 github.com/codeclysm/extract/v3 v3.1.1 github.com/deckarep/golang-set/v2 v2.6.0 github.com/dgraph-io/ristretto v0.1.1 diff --git a/go.sum b/go.sum index b1bfc4bab2..1f3cdfd66b 100644 --- a/go.sum +++ b/go.sum @@ -41,12 +41,6 @@ github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpV github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= -github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= -github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= -github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= -github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= -github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= -github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= @@ -429,7 +423,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/go/common/headers.go b/go/common/headers.go index 8c06b9c05e..bea9c8ed91 100644 --- a/go/common/headers.go +++ b/go/common/headers.go @@ -47,6 +47,12 @@ type BatchHeader struct { CrossChainTree SerializedCrossChainTree `json:"crossChainTree"` // Those are the leafs of the merkle tree hashed for privacy. Necessary for clients to be able to build proofs as they have no access to all transactions in a batch or their receipts. } +// IsGenesis indicates whether the batch is the genesis batch. +// todo (#718) - Change this to a check against a hardcoded genesis hash. +func (b *BatchHeader) IsGenesis() bool { + return b.Number.Cmp(big.NewInt(int64(L2GenesisHeight))) == 0 +} + type batchHeaderEncoding struct { Hash common.Hash `json:"hash"` ParentHash L2BatchHash `json:"parentHash"` diff --git a/go/enclave/components/batch_executor.go b/go/enclave/components/batch_executor.go index ea5b47516f..16ffdc108c 100644 --- a/go/enclave/components/batch_executor.go +++ b/go/enclave/components/batch_executor.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "maps" "math/big" "sort" "sync" @@ -144,7 +145,7 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE } // These variables will be used to create the new batch - parentBatch, err := executor.storage.FetchBatch(ctx, context.ParentPtr) + parentBatch, err := executor.storage.FetchBatchHeader(ctx, context.ParentPtr) if errors.Is(err, errutil.ErrNotFound) { executor.logger.Error(fmt.Sprintf("can't find parent batch %s. Seq %d", context.ParentPtr, context.SequencerNo)) return nil, errutil.ErrAncestorBatchNotFound @@ -154,9 +155,9 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE } parentBlock := block - if parentBatch.Header.L1Proof != block.Hash() { + if parentBatch.L1Proof != block.Hash() { var err error - parentBlock, err = executor.storage.FetchBlock(ctx, parentBatch.Header.L1Proof) + parentBlock, err = executor.storage.FetchBlock(ctx, parentBatch.L1Proof) if err != nil { executor.logger.Error(fmt.Sprintf("Could not retrieve a proof for batch %s", parentBatch.Hash()), log.ErrKey, err) return nil, err @@ -164,7 +165,7 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE } // Create a new batch based on the fromBlock of inclusion of the previous, including all new transactions - batch := core.DeterministicEmptyBatch(parentBatch.Header, block, context.AtTime, context.SequencerNo, context.BaseFee, context.Creator) + batch := core.DeterministicEmptyBatch(parentBatch, block, context.AtTime, context.SequencerNo, context.BaseFee, context.Creator) stateDB, err := executor.batchRegistry.GetBatchState(ctx, &batch.Header.ParentHash) if err != nil { @@ -194,14 +195,14 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE syntheticTransactions := append(xchainTxs, freeTransactions...) // fromTxIndex - Here we start from the 0 index. This will be the same for a validator. - successfulTxs, excludedTxs, txReceipts, err := executor.processTransactions(ctx, batch, 0, transactionsToProcess, stateDB, context.ChainConfig, false) + successfulTxs, excludedTxs, txReceipts, createdContracts, err := executor.processTransactions(ctx, batch, 0, transactionsToProcess, stateDB, context.ChainConfig, false) if err != nil { return nil, fmt.Errorf("could not process transactions. Cause: %w", err) } // fromTxIndex - Here we start from the len of the successful transactions; As long as we have the exact same successful transactions in a batch, // we will start from the same place. - ccSuccessfulTxs, _, ccReceipts, err := executor.processTransactions(ctx, batch, len(successfulTxs), syntheticTransactions, stateDB, context.ChainConfig, true) + ccSuccessfulTxs, _, ccReceipts, createdContractsSyn, err := executor.processTransactions(ctx, batch, len(successfulTxs), syntheticTransactions, stateDB, context.ChainConfig, true) if err != nil { return nil, err } @@ -244,10 +245,11 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE l.BlockHash = copyBatch.Hash() } } - + maps.Copy(createdContracts, createdContractsSyn) return &ComputedBatch{ - Batch: ©Batch, - Receipts: allReceipts, + Batch: ©Batch, + Receipts: allReceipts, + CreatedContracts: createdContracts, Commit: func(deleteEmptyObjects bool) (gethcommon.Hash, error) { executor.stateDBMutex.Lock() defer executor.stateDBMutex.Unlock() @@ -262,7 +264,7 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE }, nil } -func (executor *batchExecutor) ExecuteBatch(ctx context.Context, batch *core.Batch) (types.Receipts, error) { +func (executor *batchExecutor) ExecuteBatch(ctx context.Context, batch *core.Batch) (types.Receipts, map[gethcommon.Hash][]*gethcommon.Address, error) { defer core.LogMethodDuration(executor.logger, measure.NewStopwatch(), "Executed batch", log.BatchHashKey, batch.Hash()) // Validators recompute the entire batch using the same batch context @@ -281,20 +283,20 @@ func (executor *batchExecutor) ExecuteBatch(ctx context.Context, batch *core.Bat BaseFee: batch.Header.BaseFee, }, false) // this execution is not used when first producing a batch, we never want to fail for empty batches if err != nil { - return nil, fmt.Errorf("failed computing batch %s. Cause: %w", batch.Hash(), err) + return nil, nil, fmt.Errorf("failed computing batch %s. Cause: %w", batch.Hash(), err) } if cb.Batch.Hash() != batch.Hash() { // todo @stefan - generate a validator challenge here and return it - executor.logger.Error(fmt.Sprintf("Error validating batch. Calculated: %+v Incoming: %+v\n", cb.Batch.Header, batch.Header)) - return nil, fmt.Errorf("batch is in invalid state. Incoming hash: %s Computed hash: %s", batch.Hash(), cb.Batch.Hash()) + executor.logger.Error(fmt.Sprintf("Error validating batch. Calculated: %+v Incoming: %+v", cb.Batch.Header, batch.Header)) + return nil, nil, fmt.Errorf("batch is in invalid state. Incoming hash: %s Computed hash: %s", batch.Hash(), cb.Batch.Hash()) } if _, err := cb.Commit(true); err != nil { - return nil, fmt.Errorf("cannot commit stateDB for incoming valid batch %s. Cause: %w", batch.Hash(), err) + return nil, nil, fmt.Errorf("cannot commit stateDB for incoming valid batch %s. Cause: %w", batch.Hash(), err) } - return cb.Receipts, nil + return cb.Receipts, cb.CreatedContracts, nil } func (executor *batchExecutor) CreateGenesisState( @@ -434,11 +436,12 @@ func (executor *batchExecutor) processTransactions( stateDB *state.StateDB, cc *params.ChainConfig, noBaseFee bool, -) ([]*common.L2Tx, []*common.L2Tx, []*types.Receipt, error) { +) ([]*common.L2Tx, []*common.L2Tx, []*types.Receipt, map[gethcommon.Hash][]*gethcommon.Address, error) { var executedTransactions []*common.L2Tx var excludedTransactions []*common.L2Tx var txReceipts []*types.Receipt - txResults := evm.ExecuteTransactions( + createdContracts := make(map[gethcommon.Hash][]*gethcommon.Address) + txResults, err := evm.ExecuteTransactions( ctx, txs, stateDB, @@ -452,24 +455,27 @@ func (executor *batchExecutor) processTransactions( executor.batchGasLimit, executor.logger, ) + if err != nil { + return nil, nil, nil, nil, err + } for _, tx := range txs { result, f := txResults[tx.Tx.Hash()] if !f { - return nil, nil, nil, fmt.Errorf("there should be an entry for each transaction") + return nil, nil, nil, nil, fmt.Errorf("there should be an entry for each transaction") } - rec, foundReceipt := result.(*types.Receipt) - if foundReceipt { + if result.Receipt != nil { executedTransactions = append(executedTransactions, tx.Tx) - txReceipts = append(txReceipts, rec) + txReceipts = append(txReceipts, result.Receipt) + createdContracts[tx.Tx.Hash()] = result.CreatedContracts } else { - // Exclude all errors + // Exclude failed transactions excludedTransactions = append(excludedTransactions, tx.Tx) - executor.logger.Debug("Excluding transaction from batch", log.TxKey, tx.Tx.Hash(), log.BatchHashKey, batch.Hash(), "cause", result) + executor.logger.Debug("Excluding transaction from batch", log.TxKey, tx.Tx.Hash(), log.BatchHashKey, batch.Hash(), "cause", result.Err) } } sort.Sort(sortByTxIndex(txReceipts)) - return executedTransactions, excludedTransactions, txReceipts, nil + return executedTransactions, excludedTransactions, txReceipts, createdContracts, nil } type sortByTxIndex []*types.Receipt diff --git a/go/enclave/components/batch_registry.go b/go/enclave/components/batch_registry.go index c76b967f95..1d8d01d90b 100644 --- a/go/enclave/components/batch_registry.go +++ b/go/enclave/components/batch_registry.go @@ -8,6 +8,8 @@ import ( "sync" "time" + "github.com/ten-protocol/go-ten/go/common/measure" + "github.com/ten-protocol/go-ten/go/common" "github.com/ethereum/go-ethereum/core/types" @@ -18,7 +20,6 @@ import ( "github.com/ten-protocol/go-ten/go/common/async" "github.com/ten-protocol/go-ten/go/common/errutil" "github.com/ten-protocol/go-ten/go/common/log" - "github.com/ten-protocol/go-ten/go/common/measure" "github.com/ten-protocol/go-ten/go/enclave/core" "github.com/ten-protocol/go-ten/go/enclave/limiters" gethrpc "github.com/ten-protocol/go-ten/lib/gethfork/rpc" @@ -37,7 +38,7 @@ type batchRegistry struct { func NewBatchRegistry(storage storage.Storage, logger gethlog.Logger) BatchRegistry { var headBatchSeq *big.Int - headBatch, err := storage.FetchHeadBatch(context.Background()) + headBatch, err := storage.FetchHeadBatchHeader(context.Background()) if err != nil { if errors.Is(err, errutil.ErrNotFound) { headBatchSeq = nil @@ -46,7 +47,7 @@ func NewBatchRegistry(storage storage.Storage, logger gethlog.Logger) BatchRegis return nil } } else { - headBatchSeq = headBatch.SeqNo() + headBatchSeq = headBatch.SequencerOrderNo } return &batchRegistry{ @@ -77,22 +78,30 @@ func (br *batchRegistry) UnsubscribeFromBatches() { func (br *batchRegistry) OnL1Reorg(_ *BlockIngestionType) { // refresh the cached head batch from the database because there was an L1 reorg - headBatch, err := br.storage.FetchHeadBatch(context.Background()) + headBatch, err := br.storage.FetchHeadBatchHeader(context.Background()) if err != nil { br.logger.Error("Could not fetch head batch", log.ErrKey, err) return } - br.headBatchSeq = headBatch.SeqNo() + br.headBatchSeq = headBatch.SequencerOrderNo } -func (br *batchRegistry) OnBatchExecuted(batch *core.Batch, receipts types.Receipts) { +func (br *batchRegistry) OnBatchExecuted(batchHeader *common.BatchHeader, receipts types.Receipts) { + defer core.LogMethodDuration(br.logger, measure.NewStopwatch(), "OnBatchExecuted", log.BatchHashKey, batchHeader.Hash()) br.callbackMutex.RLock() defer br.callbackMutex.RUnlock() - defer core.LogMethodDuration(br.logger, measure.NewStopwatch(), "Sending batch and events", log.BatchHashKey, batch.Hash()) - - br.headBatchSeq = batch.SeqNo() + txs, err := br.storage.FetchBatchTransactionsBySeq(context.Background(), batchHeader.SequencerOrderNo.Uint64()) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + // this function is called after a batch was successfully executed. This is a catastrophic failure + br.logger.Crit("should not happen. cannot get transactions. ", log.ErrKey, err) + } + br.headBatchSeq = batchHeader.SequencerOrderNo if br.batchesCallback != nil { + batch := &core.Batch{ + Header: batchHeader, + Transactions: txs, + } br.batchesCallback(batch, receipts) } @@ -105,13 +114,13 @@ func (br *batchRegistry) HasGenesisBatch() (bool, error) { func (br *batchRegistry) BatchesAfter(ctx context.Context, batchSeqNo uint64, upToL1Height uint64, rollupLimiter limiters.RollupLimiter) ([]*core.Batch, []*types.Block, error) { // sanity check - headBatch, err := br.storage.FetchBatchBySeqNo(ctx, br.HeadBatchSeq().Uint64()) + headBatch, err := br.storage.FetchBatchHeaderBySeqNo(ctx, br.HeadBatchSeq().Uint64()) if err != nil { return nil, nil, err } - if headBatch.SeqNo().Uint64() < batchSeqNo { - return nil, nil, fmt.Errorf("head batch height %d is in the past compared to requested batch %d", headBatch.SeqNo().Uint64(), batchSeqNo) + if headBatch.SequencerOrderNo.Uint64() < batchSeqNo { + return nil, nil, fmt.Errorf("head batch height %d is in the past compared to requested batch %d", headBatch.SequencerOrderNo.Uint64(), batchSeqNo) } resultBatches := make([]*core.Batch, 0) @@ -119,7 +128,7 @@ func (br *batchRegistry) BatchesAfter(ctx context.Context, batchSeqNo uint64, up currentBatchSeq := batchSeqNo var currentBlock *types.Block - for currentBatchSeq <= headBatch.SeqNo().Uint64() { + for currentBatchSeq <= headBatch.SequencerOrderNo.Uint64() { batch, err := br.storage.FetchBatchBySeqNo(ctx, currentBatchSeq) if err != nil { return nil, nil, fmt.Errorf("could not retrieve batch by sequence number %d. Cause: %w", currentBatchSeq, err) @@ -168,11 +177,7 @@ func (br *batchRegistry) BatchesAfter(ctx context.Context, batchSeqNo uint64, up } func (br *batchRegistry) GetBatchState(ctx context.Context, hash *common.L2BatchHash) (*state.StateDB, error) { - batch, err := br.storage.FetchBatch(ctx, *hash) - if err != nil { - return nil, err - } - return getBatchState(ctx, br.storage, batch) + return getBatchState(ctx, br.storage, *hash) } func (br *batchRegistry) GetBatchStateAtHeight(ctx context.Context, blockNumber *gethrpc.BlockNumber) (*state.StateDB, error) { @@ -182,17 +187,17 @@ func (br *batchRegistry) GetBatchStateAtHeight(ctx context.Context, blockNumber return nil, err } - return getBatchState(ctx, br.storage, batch) + return getBatchState(ctx, br.storage, batch.Hash()) } -func getBatchState(ctx context.Context, storage storage.Storage, batch *core.Batch) (*state.StateDB, error) { - blockchainState, err := storage.CreateStateDB(ctx, batch.Hash()) +func getBatchState(ctx context.Context, storage storage.Storage, batchHash common.L2BatchHash) (*state.StateDB, error) { + blockchainState, err := storage.CreateStateDB(ctx, batchHash) if err != nil { return nil, fmt.Errorf("could not create stateDB. Cause: %w", err) } if blockchainState == nil { - return nil, fmt.Errorf("unable to fetch chain state for batch %s", batch.Hash().Hex()) + return nil, fmt.Errorf("unable to fetch chain state for batch %s", batchHash.Hex()) } return blockchainState, err diff --git a/go/enclave/components/interfaces.go b/go/enclave/components/interfaces.go index cb74f0bf4b..cad76c7292 100644 --- a/go/enclave/components/interfaces.go +++ b/go/enclave/components/interfaces.go @@ -65,7 +65,9 @@ type BatchExecutionContext struct { type ComputedBatch struct { Batch *core.Batch Receipts types.Receipts - Commit func(bool) (gethcommon.Hash, error) + // while executing the batch, we collect the newly created contracts mapped by the transaction that created them + CreatedContracts map[gethcommon.Hash][]*gethcommon.Address + Commit func(bool) (gethcommon.Hash, error) } type BatchExecutor interface { @@ -76,7 +78,7 @@ type BatchExecutor interface { ComputeBatch(ctx context.Context, batchContext *BatchExecutionContext, failForEmptyBatch bool) (*ComputedBatch, error) // ExecuteBatch - executes the transactions and xchain messages, returns the receipts, and updates the stateDB - ExecuteBatch(context.Context, *core.Batch) (types.Receipts, error) + ExecuteBatch(context.Context, *core.Batch) (types.Receipts, map[gethcommon.Hash][]*gethcommon.Address, error) // CreateGenesisState - will create and commit the genesis state in the stateDB for the given block hash, // and uint64 timestamp representing the time now. In this genesis state is where one can @@ -102,7 +104,7 @@ type BatchRegistry interface { SubscribeForExecutedBatches(func(*core.Batch, types.Receipts)) UnsubscribeFromBatches() - OnBatchExecuted(batch *core.Batch, receipts types.Receipts) + OnBatchExecuted(batch *common.BatchHeader, receipts types.Receipts) OnL1Reorg(*BlockIngestionType) // HasGenesisBatch - returns if genesis batch is available yet or not, or error in case diff --git a/go/enclave/components/rollup_compression.go b/go/enclave/components/rollup_compression.go index ca4536e0ca..6b36d188da 100644 --- a/go/enclave/components/rollup_compression.go +++ b/go/enclave/components/rollup_compression.go @@ -175,8 +175,8 @@ func (rc *RollupCompression) createRollupHeader(ctx context.Context, rollup *cor } reorgMap := make(map[uint64]bool) for _, batch := range reorgedBatches { - rc.logger.Info("Reorg batch", log.BatchSeqNoKey, batch.SeqNo().Uint64()) - reorgMap[batch.SeqNo().Uint64()] = true + rc.logger.Info("Reorg batch", log.BatchSeqNoKey, batch.SequencerOrderNo.Uint64()) + reorgMap[batch.SequencerOrderNo.Uint64()] = true } for i, batch := range batches { @@ -404,7 +404,7 @@ func (rc *RollupCompression) executeAndSaveIncompleteBatches(ctx context.Context parentHash := calldataRollupHeader.FirstCanonParentHash if calldataRollupHeader.FirstBatchSequence.Uint64() != common.L2GenesisSeqNo { - _, err := rc.storage.FetchBatch(ctx, parentHash) + _, err := rc.storage.FetchBatchHeader(ctx, parentHash) if err != nil { rc.logger.Error("Could not find batch mentioned in the rollup. This should not happen.", log.ErrKey, err) return err @@ -470,11 +470,11 @@ func (rc *RollupCompression) executeAndSaveIncompleteBatches(ctx context.Context if err != nil { return err } - err = rc.storage.StoreExecutedBatch(ctx, genBatch, nil) + err = rc.storage.StoreExecutedBatch(ctx, genBatch.Header, nil, nil) if err != nil { return err } - rc.batchRegistry.OnBatchExecuted(genBatch, nil) + rc.batchRegistry.OnBatchExecuted(genBatch.Header, nil) rc.logger.Info("Stored genesis", log.BatchHashKey, genBatch.Hash()) parentHash = genBatch.Hash() @@ -514,11 +514,11 @@ func (rc *RollupCompression) executeAndSaveIncompleteBatches(ctx context.Context if err != nil { return err } - err = rc.storage.StoreExecutedBatch(ctx, computedBatch.Batch, computedBatch.Receipts) + err = rc.storage.StoreExecutedBatch(ctx, computedBatch.Batch.Header, computedBatch.Receipts, computedBatch.CreatedContracts) if err != nil { return err } - rc.batchRegistry.OnBatchExecuted(computedBatch.Batch, nil) + rc.batchRegistry.OnBatchExecuted(computedBatch.Batch.Header, nil) parentHash = computedBatch.Batch.Hash() } diff --git a/go/enclave/core/batch.go b/go/enclave/core/batch.go index bc97ff22e1..cdc15cf9e4 100644 --- a/go/enclave/core/batch.go +++ b/go/enclave/core/batch.go @@ -49,12 +49,6 @@ func (b *Batch) NumberU64() uint64 { return b.Header.Number.Uint64() } func (b *Batch) Number() *big.Int { return new(big.Int).Set(b.Header.Number) } func (b *Batch) SeqNo() *big.Int { return new(big.Int).Set(b.Header.SequencerOrderNo) } -// IsGenesis indicates whether the batch is the genesis batch. -// todo (#718) - Change this to a check against a hardcoded genesis hash. -func (b *Batch) IsGenesis() bool { - return b.Header.Number.Cmp(big.NewInt(int64(common.L2GenesisHeight))) == 0 -} - func (b *Batch) ToExtBatch(transactionBlobCrypto crypto.DataEncryptionService, compression compression.DataCompressionService) (*common.ExtBatch, error) { txHashes := make([]gethcommon.Hash, len(b.Transactions)) for idx, tx := range b.Transactions { diff --git a/go/enclave/enclave.go b/go/enclave/enclave.go index 7db4324e61..a12e7a7028 100644 --- a/go/enclave/enclave.go +++ b/go/enclave/enclave.go @@ -510,7 +510,7 @@ func (e *enclaveImpl) SubmitBatch(ctx context.Context, extBatch *common.ExtBatch e.logger.Info("Received new p2p batch", log.BatchHeightKey, extBatch.Header.Number, log.BatchHashKey, extBatch.Hash(), "l1", extBatch.Header.L1Proof) seqNo := extBatch.Header.SequencerOrderNo.Uint64() if seqNo > common.L2GenesisSeqNo+1 { - _, err := e.storage.FetchBatchBySeqNo(ctx, seqNo-1) + _, err := e.storage.FetchBatchHeaderBySeqNo(ctx, seqNo-1) if err != nil { return responses.ToInternalError(fmt.Errorf("could not find previous batch with seq: %d", seqNo-1)) } @@ -961,7 +961,7 @@ func replayBatchesToValidState(ctx context.Context, storage storage.Storage, reg } // calculate the stateDB after this batch and store it in the cache - _, err := batchExecutor.ExecuteBatch(ctx, batch) + _, _, err := batchExecutor.ExecuteBatch(ctx, batch) if err != nil { return err } diff --git a/go/enclave/evm/chain_context.go b/go/enclave/evm/chain_context.go index 75e4b942e6..a69ef9b89e 100644 --- a/go/enclave/evm/chain_context.go +++ b/go/enclave/evm/chain_context.go @@ -42,7 +42,7 @@ func (occ *ObscuroChainContext) GetHeader(hash common.Hash, _ uint64) *types.Hea ctx, cancelCtx := context.WithTimeout(context.Background(), occ.config.RPCTimeout) defer cancelCtx() - batch, err := occ.storage.FetchBatch(ctx, hash) + batch, err := occ.storage.FetchBatchHeader(ctx, hash) if err != nil { if errors.Is(err, errutil.ErrNotFound) { return nil @@ -50,7 +50,7 @@ func (occ *ObscuroChainContext) GetHeader(hash common.Hash, _ uint64) *types.Hea occ.logger.Crit("Could not retrieve rollup", log.ErrKey, err) } - h, err := occ.gethEncodingService.CreateEthHeaderForBatch(ctx, batch.Header) + h, err := occ.gethEncodingService.CreateEthHeaderForBatch(ctx, batch) if err != nil { occ.logger.Crit("Could not convert to eth header", log.ErrKey, err) return nil diff --git a/go/enclave/evm/ethchainadapter/eth_chainadapter.go b/go/enclave/evm/ethchainadapter/eth_chainadapter.go index c64529be46..1dbb927724 100644 --- a/go/enclave/evm/ethchainadapter/eth_chainadapter.go +++ b/go/enclave/evm/ethchainadapter/eth_chainadapter.go @@ -59,12 +59,12 @@ func (e *EthChainAdapter) CurrentBlock() *gethtypes.Header { ctx, cancelCtx := context.WithTimeout(context.Background(), e.config.RPCTimeout) defer cancelCtx() - currentBatch, err := e.storage.FetchBatchBySeqNo(ctx, currentBatchSeqNo.Uint64()) + currentBatch, err := e.storage.FetchBatchHeaderBySeqNo(ctx, currentBatchSeqNo.Uint64()) if err != nil { e.logger.Warn("unable to retrieve batch seq no", "currentBatchSeqNo", currentBatchSeqNo, log.ErrKey, err) return nil } - batch, err := e.gethEncoding.CreateEthHeaderForBatch(ctx, currentBatch.Header) + batch, err := e.gethEncoding.CreateEthHeaderForBatch(ctx, currentBatch) if err != nil { e.logger.Warn("unable to convert batch to eth header ", "currentBatchSeqNo", currentBatchSeqNo, log.ErrKey, err) return nil diff --git a/go/enclave/evm/evm_facade.go b/go/enclave/evm/evm_facade.go index 059b6f851e..e3ecd3fd39 100644 --- a/go/enclave/evm/evm_facade.go +++ b/go/enclave/evm/evm_facade.go @@ -38,6 +38,12 @@ import ( var ErrGasNotEnoughForL1 = errors.New("gas limit too low to pay for execution and l1 fees") +type TxExecResult struct { + Receipt *types.Receipt + CreatedContracts []*gethcommon.Address + Err error +} + // ExecuteTransactions // header - the header of the rollup where this transaction will be included // fromTxIndex - for the receipts and events, the evm needs to know for each transaction the order in which it was executed in the block. @@ -54,17 +60,17 @@ func ExecuteTransactions( noBaseFee bool, batchGasLimit uint64, logger gethlog.Logger, -) map[common.TxHash]interface{} { // todo - return error +) (map[common.TxHash]*TxExecResult, error) { chain, vmCfg := initParams(storage, gethEncodingService, config, noBaseFee, logger) gp := gethcore.GasPool(batchGasLimit) zero := uint64(0) usedGas := &zero - result := map[common.TxHash]interface{}{} + result := map[common.TxHash]*TxExecResult{} ethHeader, err := gethEncodingService.CreateEthHeaderForBatch(ctx, header) if err != nil { - logger.Crit("Could not convert to eth header", log.ErrKey, err) - return nil + logger.Error("Could not convert to eth header", log.ErrKey, err) + return nil, err } hash := header.Hash() @@ -77,7 +83,9 @@ func ExecuteTransactions( // this should not open up any attack vectors on the randomness. tCountRollback := 0 for i, t := range txs { - r, err := executeTransaction( + txResult := &TxExecResult{} + result[t.Tx.Hash()] = txResult + r, createdContracts, err := executeTransaction( s, chainConfig, chain, @@ -92,7 +100,7 @@ func ExecuteTransactions( ) if err != nil { tCountRollback++ - result[t.Tx.Hash()] = err + txResult.Err = err // only log tx execution errors if they are unexpected logFailedTx := logger.Info if errors.Is(err, gethcore.ErrNonceTooHigh) || errors.Is(err, gethcore.ErrNonceTooLow) || errors.Is(err, gethcore.ErrFeeCapTooLow) || errors.Is(err, ErrGasNotEnoughForL1) { @@ -101,11 +109,13 @@ func ExecuteTransactions( logFailedTx("Failed to execute tx:", log.TxKey, t.Tx.Hash(), log.CtrErrKey, err) continue } - result[t.Tx.Hash()] = r + logReceipt(r, logger) + txResult.Receipt = r + txResult.CreatedContracts = createdContracts } s.Finalise(true) - return result + return result, nil } const ( @@ -127,16 +137,29 @@ func executeTransaction( tCount int, batchHash common.L2BatchHash, batchHeight uint64, -) (*types.Receipt, error) { +) (*types.Receipt, []*gethcommon.Address, error) { + var createdContracts []*gethcommon.Address rules := cc.Rules(big.NewInt(0), true, 0) from, err := types.Sender(types.LatestSigner(cc), t.Tx) if err != nil { - return nil, err + return nil, nil, err } s.Prepare(rules, from, gethcommon.Address{}, t.Tx.To(), nil, nil) snap := s.Snapshot() s.SetTxContext(t.Tx.Hash(), tCount) + s.SetLogger(&tracing.Hooks{ + // called when the code of a contract changes. + OnCodeChange: func(addr gethcommon.Address, prevCodeHash gethcommon.Hash, prevCode []byte, codeHash gethcommon.Hash, code []byte) { + // only proceed for new deployments. + if len(prevCode) > 0 { + return + } + createdContracts = append(createdContracts, &addr) + }, + }) + defer s.SetLogger(nil) + before := header.MixDigest // calculate a random value per transaction header.MixDigest = crypto.CalculateTxRnd(before.Bytes(), tCount) @@ -226,10 +249,10 @@ func executeTransaction( header.MixDigest = before if err != nil { s.RevertToSnapshot(snap) - return receipt, err + return receipt, nil, err } - return receipt, nil + return receipt, createdContracts, nil } func logReceipt(r *types.Receipt, logger gethlog.Logger) { diff --git a/go/enclave/l2chain/interfaces.go b/go/enclave/l2chain/interfaces.go index 6c29fd25a3..83eb0fee96 100644 --- a/go/enclave/l2chain/interfaces.go +++ b/go/enclave/l2chain/interfaces.go @@ -21,7 +21,7 @@ type ObscuroChain interface { // For Contracts - the address of the deployer. // Note - this might be subject to change if we implement a more flexible mechanism // todo - support BlockNumberOrHash - AccountOwner(ctx context.Context, address gethcommon.Address, blockNumber *gethrpc.BlockNumber) (*gethcommon.Address, error) + AccountOwner(ctx context.Context, address gethcommon.Address) (*gethcommon.Address, error) // GetBalanceAtBlock - will return the balance of a specific address at the specific given block number (batch number). GetBalanceAtBlock(ctx context.Context, accountAddr gethcommon.Address, blockNumber *gethrpc.BlockNumber) (*hexutil.Big, error) diff --git a/go/enclave/l2chain/l2_chain.go b/go/enclave/l2chain/l2_chain.go index b0c34c4c32..3b3cdb76a8 100644 --- a/go/enclave/l2chain/l2_chain.go +++ b/go/enclave/l2chain/l2_chain.go @@ -6,6 +6,8 @@ import ( "fmt" "math/big" + "github.com/ten-protocol/go-ten/go/common/errutil" + "github.com/ten-protocol/go-ten/go/config" "github.com/ten-protocol/go-ten/go/enclave/storage" @@ -64,32 +66,17 @@ func NewChain( } } -func (oc *obscuroChain) AccountOwner(ctx context.Context, address gethcommon.Address, blockNumber *gethrpc.BlockNumber) (*gethcommon.Address, error) { - // check if account is a contract - isContract, err := oc.isAccountContractAtBlock(ctx, address, blockNumber) - if err != nil { - return nil, err - } - if !isContract { - return &address, nil - } - - // If the address is a contract, find the signer of the deploy transaction - txHash, err := oc.storage.GetContractCreationTx(ctx, address) +func (oc *obscuroChain) AccountOwner(ctx context.Context, address gethcommon.Address) (*gethcommon.Address, error) { + // check if the account is a contract and return the owner + owner, err := oc.storage.ReadContractOwner(ctx, address) if err != nil { - return nil, err - } - transaction, _, _, _, err := oc.storage.GetTransaction(ctx, *txHash) //nolint:dogsled - if err != nil { - return nil, err - } - signer := types.NewLondonSigner(oc.chainConfig.ChainID) - - sender, err := signer.Sender(transaction) - if err != nil { - return nil, err + // it is not a contract, so it's an EOA + if errors.Is(err, errutil.ErrNotFound) { + return &address, nil + } + return nil, fmt.Errorf("could not read account owner. cause: %w", err) } - return &sender, nil + return owner, nil } func (oc *obscuroChain) GetBalanceAtBlock(ctx context.Context, accountAddr gethcommon.Address, blockNumber *gethrpc.BlockNumber) (*hexutil.Big, error) { @@ -212,13 +199,3 @@ func (oc *obscuroChain) GetChainStateAtTransaction(ctx context.Context, batch *c } return nil, vm.BlockContext{}, nil, fmt.Errorf("transaction index %d out of range for batch %#x", txIndex, batch.Hash()) } - -// Returns whether the account is a contract -func (oc *obscuroChain) isAccountContractAtBlock(ctx context.Context, accountAddr gethcommon.Address, blockNumber *gethrpc.BlockNumber) (bool, error) { - chainState, err := oc.Registry.GetBatchStateAtHeight(ctx, blockNumber) - if err != nil { - return false, fmt.Errorf("unable to get blockchain state - %w", err) - } - - return len(chainState.GetCode(accountAddr)) > 0, nil -} diff --git a/go/enclave/nodetype/common.go b/go/enclave/nodetype/common.go index a99dc0f690..a0c083ac4d 100644 --- a/go/enclave/nodetype/common.go +++ b/go/enclave/nodetype/common.go @@ -20,8 +20,8 @@ func ExportCrossChainData(ctx context.Context, storage storage.Storage, fromSeqN return nil, errutil.ErrCrossChainBundleNoBatches } - blockHash := canonicalBatches[len(canonicalBatches)-1].Header.L1Proof - batchHash := canonicalBatches[len(canonicalBatches)-1].Header.Hash() + blockHash := canonicalBatches[len(canonicalBatches)-1].L1Proof + batchHash := canonicalBatches[len(canonicalBatches)-1].Hash() block, err := storage.FetchBlock(ctx, blockHash) if err != nil { @@ -30,8 +30,8 @@ func ExportCrossChainData(ctx context.Context, storage storage.Storage, fromSeqN crossChainHashes := make([][]byte, 0) for _, batch := range canonicalBatches { - if batch.Header.CrossChainRoot != gethcommon.BigToHash(gethcommon.Big0) { - crossChainHashes = append(crossChainHashes, batch.Header.CrossChainRoot.Bytes()) + if batch.CrossChainRoot != gethcommon.BigToHash(gethcommon.Big0) { + crossChainHashes = append(crossChainHashes, batch.CrossChainRoot.Bytes()) } } diff --git a/go/enclave/nodetype/sequencer.go b/go/enclave/nodetype/sequencer.go index ff7ed22dc4..e992e0e64b 100644 --- a/go/enclave/nodetype/sequencer.go +++ b/go/enclave/nodetype/sequencer.go @@ -150,7 +150,7 @@ func (s *sequencer) createGenesisBatch(ctx context.Context, block *common.L1Bloc return fmt.Errorf("failed signing created batch. Cause: %w", err) } - if err := s.StoreExecutedBatch(ctx, batch, nil); err != nil { + if err := s.StoreExecutedBatch(ctx, batch, nil, nil); err != nil { return fmt.Errorf("1. failed storing batch. Cause: %w", err) } @@ -205,7 +205,7 @@ func (s *sequencer) createNewHeadBatch(ctx context.Context, l1HeadBlock *common. if headBatchSeq == nil { headBatchSeq = big.NewInt(int64(common.L2GenesisSeqNo)) } - headBatch, err := s.storage.FetchBatchBySeqNo(ctx, headBatchSeq.Uint64()) + headBatch, err := s.storage.FetchBatchHeaderBySeqNo(ctx, headBatchSeq.Uint64()) if err != nil { return err } @@ -220,7 +220,7 @@ func (s *sequencer) createNewHeadBatch(ctx context.Context, l1HeadBlock *common. } // sanity check that the headBatch.Header.L1Proof is an ancestor of the l1HeadBlock - b, err := s.storage.FetchBlock(ctx, headBatch.Header.L1Proof) + b, err := s.storage.FetchBlock(ctx, headBatch.L1Proof) if err != nil { return err } @@ -301,7 +301,7 @@ func (s *sequencer) produceBatch( return nil, fmt.Errorf("failed signing created batch. Cause: %w", err) } - if err := s.StoreExecutedBatch(ctx, cb.Batch, cb.Receipts); err != nil { + if err := s.StoreExecutedBatch(ctx, cb.Batch, cb.Receipts, cb.CreatedContracts); err != nil { return nil, fmt.Errorf("2. failed storing batch. Cause: %w", err) } @@ -319,7 +319,7 @@ func (s *sequencer) produceBatch( // StoreExecutedBatch - stores an executed batch in one go. This can be done for the sequencer because it is guaranteed // that all dependencies are in place for the execution to be successful. -func (s *sequencer) StoreExecutedBatch(ctx context.Context, batch *core.Batch, receipts types.Receipts) error { +func (s *sequencer) StoreExecutedBatch(ctx context.Context, batch *core.Batch, receipts types.Receipts, newContracts map[gethcommon.Hash][]*gethcommon.Address) error { defer core.LogMethodDuration(s.logger, measure.NewStopwatch(), "Registry StoreBatch() exit", log.BatchHashKey, batch.Hash()) // Check if this batch is already stored. @@ -337,11 +337,11 @@ func (s *sequencer) StoreExecutedBatch(ctx context.Context, batch *core.Batch, r return fmt.Errorf("failed to store batch. Cause: %w", err) } - if err := s.storage.StoreExecutedBatch(ctx, batch, receipts); err != nil { + if err := s.storage.StoreExecutedBatch(ctx, batch.Header, receipts, newContracts); err != nil { return fmt.Errorf("failed to store batch. Cause: %w", err) } - s.batchRegistry.OnBatchExecuted(batch, receipts) + s.batchRegistry.OnBatchExecuted(batch.Header, receipts) return nil } @@ -373,8 +373,8 @@ func (s *sequencer) CreateRollup(ctx context.Context, lastBatchNo uint64) (*comm } func (s *sequencer) duplicateBatches(ctx context.Context, l1Head *types.Block, nonCanonicalL1Path []common.L1BlockHash, canonicalL1Path []common.L1BlockHash) error { - batchesToDuplicate := make([]*core.Batch, 0) - batchesToExclude := make(map[uint64]*core.Batch, 0) + batchesToDuplicate := make([]*common.BatchHeader, 0) + batchesToExclude := make(map[uint64]*common.BatchHeader, 0) // read the batches attached to these blocks for _, l1BlockHash := range nonCanonicalL1Path { @@ -399,7 +399,7 @@ func (s *sequencer) duplicateBatches(ctx context.Context, l1Head *types.Block, n return fmt.Errorf("could not FetchBatchesByBlock %s. Cause %w", l1BlockHash, err) } for _, batch := range batches { - batchesToExclude[batch.NumberU64()] = batch + batchesToExclude[batch.Number.Uint64()] = batch } } @@ -409,20 +409,20 @@ func (s *sequencer) duplicateBatches(ctx context.Context, l1Head *types.Block, n // sort by height sort.Slice(batchesToDuplicate, func(i, j int) bool { - return batchesToDuplicate[i].Number().Cmp(batchesToDuplicate[j].Number()) == -1 + return batchesToDuplicate[i].Number.Cmp(batchesToDuplicate[j].Number) == -1 }) - currentHead := batchesToDuplicate[0].Header.ParentHash + currentHead := batchesToDuplicate[0].ParentHash // find all batches for that path for i, orphanBatch := range batchesToDuplicate { // sanity check that all these batches are consecutive - if i > 0 && batchesToDuplicate[i].Header.ParentHash != batchesToDuplicate[i-1].Hash() { + if i > 0 && batchesToDuplicate[i].ParentHash != batchesToDuplicate[i-1].Hash() { s.logger.Crit("the batches that must be duplicated are invalid") } - if batchesToExclude[orphanBatch.NumberU64()] != nil { - s.logger.Info("Not duplicating batch because there is already a canonical batch on that height", log.BatchSeqNoKey, orphanBatch.SeqNo()) - currentHead = batchesToExclude[orphanBatch.NumberU64()].Hash() + if batchesToExclude[orphanBatch.Number.Uint64()] != nil { + s.logger.Info("Not duplicating batch because there is already a canonical batch on that height", log.BatchSeqNoKey, orphanBatch.SequencerOrderNo) + currentHead = batchesToExclude[orphanBatch.Number.Uint64()].Hash() continue } sequencerNo, err := s.storage.FetchCurrentSequencerNo(ctx) @@ -430,8 +430,12 @@ func (s *sequencer) duplicateBatches(ctx context.Context, l1Head *types.Block, n return fmt.Errorf("could not fetch sequencer no. Cause %w", err) } sequencerNo = sequencerNo.Add(sequencerNo, big.NewInt(1)) + transactions, err := s.storage.FetchBatchTransactionsBySeq(ctx, orphanBatch.SequencerOrderNo.Uint64()) + if err != nil { + return fmt.Errorf("could not fetch transactions to duplicate. Cause %w", err) + } // create the duplicate and store/broadcast it, recreate batch even if it was empty - cb, err := s.produceBatch(ctx, sequencerNo, l1Head.Hash(), currentHead, orphanBatch.Transactions, orphanBatch.Header.Time, false) + cb, err := s.produceBatch(ctx, sequencerNo, l1Head.Hash(), currentHead, transactions, orphanBatch.Time, false) if err != nil { return fmt.Errorf("could not produce batch. Cause %w", err) } diff --git a/go/enclave/nodetype/validator.go b/go/enclave/nodetype/validator.go index 1ccd9ce81b..2227ad02de 100644 --- a/go/enclave/nodetype/validator.go +++ b/go/enclave/nodetype/validator.go @@ -105,62 +105,72 @@ func (val *obsValidator) ExecuteStoredBatches(ctx context.Context) error { startMempool(val.batchRegistry, val.mempool) - for _, batch := range batches { - if batch.IsGenesis() { - if err = val.handleGenesis(ctx, batch); err != nil { + for _, batchHeader := range batches { + if batchHeader.IsGenesis() { + if err = val.handleGenesis(ctx, batchHeader); err != nil { return err } } - val.logger.Trace("Executing stored batch", log.BatchSeqNoKey, batch.SeqNo()) + val.logger.Trace("Executing stored batchHeader", log.BatchSeqNoKey, batchHeader.SequencerOrderNo) - // check batch execution prerequisites - canExecute, err := val.executionPrerequisites(ctx, batch) + // check batchHeader execution prerequisites + canExecute, err := val.executionPrerequisites(ctx, batchHeader) if err != nil { - return fmt.Errorf("could not determine the execution prerequisites for batch %s. Cause: %w", batch.Hash(), err) + return fmt.Errorf("could not determine the execution prerequisites for batchHeader %s. Cause: %w", batchHeader.Hash(), err) } - val.logger.Trace("Can execute stored batch", log.BatchSeqNoKey, batch.SeqNo(), "can", canExecute) + val.logger.Trace("Can execute stored batchHeader", log.BatchSeqNoKey, batchHeader.SequencerOrderNo, "can", canExecute) if canExecute { - receipts, err := val.batchExecutor.ExecuteBatch(ctx, batch) + txs, err := val.storage.FetchBatchTransactionsBySeq(ctx, batchHeader.SequencerOrderNo.Uint64()) if err != nil { - return fmt.Errorf("could not execute batch %s. Cause: %w", batch.Hash(), err) + return fmt.Errorf("could not get txs for batch %s. Cause: %w", batchHeader.Hash(), err) } - err = val.storage.StoreExecutedBatch(ctx, batch, receipts) + + batch := &core.Batch{ + Header: batchHeader, + Transactions: txs, + } + + receipts, contracts, err := val.batchExecutor.ExecuteBatch(ctx, batch) + if err != nil { + return fmt.Errorf("could not execute batchHeader %s. Cause: %w", batchHeader.Hash(), err) + } + err = val.storage.StoreExecutedBatch(ctx, batchHeader, receipts, contracts) if err != nil { - return fmt.Errorf("could not store executed batch %s. Cause: %w", batch.Hash(), err) + return fmt.Errorf("could not store executed batchHeader %s. Cause: %w", batchHeader.Hash(), err) } err = val.mempool.Chain.IngestNewBlock(batch) if err != nil { - return fmt.Errorf("failed to feed batch into the virtual eth chain- %w", err) + return fmt.Errorf("failed to feed batchHeader into the virtual eth chain- %w", err) } - val.batchRegistry.OnBatchExecuted(batch, receipts) + val.batchRegistry.OnBatchExecuted(batchHeader, receipts) } } return nil } -func (val *obsValidator) executionPrerequisites(ctx context.Context, batch *core.Batch) (bool, error) { +func (val *obsValidator) executionPrerequisites(ctx context.Context, batch *common.BatchHeader) (bool, error) { // 1.l1 block exists - block, err := val.storage.FetchBlock(ctx, batch.Header.L1Proof) + block, err := val.storage.FetchBlock(ctx, batch.L1Proof) if err != nil && errors.Is(err, errutil.ErrNotFound) { - val.logger.Warn("Error fetching block", log.BlockHashKey, batch.Header.L1Proof, log.ErrKey, err) + val.logger.Warn("Error fetching block", log.BlockHashKey, batch.L1Proof, log.ErrKey, err) return false, err } - val.logger.Trace("l1 block exists", log.BatchSeqNoKey, batch.SeqNo()) + val.logger.Trace("l1 block exists", log.BatchSeqNoKey, batch.SequencerOrderNo) // 2. parent was executed - parentExecuted, err := val.storage.BatchWasExecuted(ctx, batch.Header.ParentHash) + parentExecuted, err := val.storage.BatchWasExecuted(ctx, batch.ParentHash) if err != nil { - val.logger.Info("Error reading execution status of batch", log.BatchHashKey, batch.Header.ParentHash, log.ErrKey, err) + val.logger.Info("Error reading execution status of batch", log.BatchHashKey, batch.ParentHash, log.ErrKey, err) return false, err } - val.logger.Trace("parentExecuted", log.BatchSeqNoKey, batch.SeqNo(), "val", parentExecuted) + val.logger.Trace("parentExecuted", log.BatchSeqNoKey, batch.SequencerOrderNo, "val", parentExecuted) return block != nil && parentExecuted, nil } -func (val *obsValidator) handleGenesis(ctx context.Context, batch *core.Batch) error { - genBatch, _, err := val.batchExecutor.CreateGenesisState(ctx, batch.Header.L1Proof, batch.Header.Time, batch.Header.Coinbase, batch.Header.BaseFee) +func (val *obsValidator) handleGenesis(ctx context.Context, batch *common.BatchHeader) error { + genBatch, _, err := val.batchExecutor.CreateGenesisState(ctx, batch.L1Proof, batch.Time, batch.Coinbase, batch.BaseFee) if err != nil { return err } @@ -169,7 +179,7 @@ func (val *obsValidator) handleGenesis(ctx context.Context, batch *core.Batch) e return fmt.Errorf("received invalid genesis batch") } - err = val.storage.StoreExecutedBatch(ctx, genBatch, nil) + err = val.storage.StoreExecutedBatch(ctx, genBatch.Header, nil, nil) if err != nil { return err } diff --git a/go/enclave/rpc/EstimateGas.go b/go/enclave/rpc/EstimateGas.go index 0c583da43e..f09a3d4b96 100644 --- a/go/enclave/rpc/EstimateGas.go +++ b/go/enclave/rpc/EstimateGas.go @@ -75,7 +75,7 @@ func EstimateGasExecute(builder *CallBuilder[CallParamsWithBlock, hexutil.Uint64 } headBatchSeq := rpc.registry.HeadBatchSeq() - batch, err := rpc.storage.FetchBatchBySeqNo(builder.ctx, headBatchSeq.Uint64()) + batch, err := rpc.storage.FetchBatchHeaderBySeqNo(builder.ctx, headBatchSeq.Uint64()) if err != nil { return err } @@ -83,7 +83,7 @@ func EstimateGasExecute(builder *CallBuilder[CallParamsWithBlock, hexutil.Uint64 // We divide the total estimated l1 cost by the l2 fee per gas in order to convert // the expected cost into l2 gas based on current pricing. // todo @siliev - add overhead when the base fee becomes dynamic. - publishingGas := big.NewInt(0).Div(l1Cost, batch.Header.BaseFee) + publishingGas := big.NewInt(0).Div(l1Cost, batch.BaseFee) // The one additional gas captures the modulo leftover in some edge cases // where BaseFee is bigger than the l1cost. diff --git a/go/enclave/rpc/GetBalance.go b/go/enclave/rpc/GetBalance.go index 4fae78d2ab..18446a1d2a 100644 --- a/go/enclave/rpc/GetBalance.go +++ b/go/enclave/rpc/GetBalance.go @@ -43,9 +43,9 @@ func GetBalanceValidate(reqParams []any, builder *CallBuilder[BalanceReq, hexuti } func GetBalanceExecute(builder *CallBuilder[BalanceReq, hexutil.Big], rpc *EncryptionManager) error { - acctOwner, err := rpc.chain.AccountOwner(builder.ctx, *builder.Param.Addr, builder.Param.Block.BlockNumber) + acctOwner, err := rpc.chain.AccountOwner(builder.ctx, *builder.Param.Addr) if err != nil { - return err + return fmt.Errorf("cannot determine account owner. Cause: %w", err) } // authorise the call diff --git a/go/enclave/rpc/GetLogs.go b/go/enclave/rpc/GetLogs.go index 3d938883d0..8aac4ee974 100644 --- a/go/enclave/rpc/GetLogs.go +++ b/go/enclave/rpc/GetLogs.go @@ -51,12 +51,12 @@ func GetLogsExecute(builder *CallBuilder[filters.FilterCriteria, []*types.Log], from := filter.FromBlock if from != nil && from.Int64() < 0 { - batch, err := rpc.storage.FetchBatchBySeqNo(builder.ctx, rpc.registry.HeadBatchSeq().Uint64()) + batch, err := rpc.storage.FetchBatchHeaderBySeqNo(builder.ctx, rpc.registry.HeadBatchSeq().Uint64()) if err != nil { // system error return fmt.Errorf("could not retrieve head batch. Cause: %w", err) } - from = batch.Number() + from = batch.Number } // Set from to the height of the block hash diff --git a/go/enclave/rpc/GetTransactionCount.go b/go/enclave/rpc/GetTransactionCount.go index 99989b32af..5282f733fe 100644 --- a/go/enclave/rpc/GetTransactionCount.go +++ b/go/enclave/rpc/GetTransactionCount.go @@ -52,7 +52,7 @@ func GetTransactionCountExecute(builder *CallBuilder[uint64, string], rpc *Encry } var nonce uint64 - l2Head, err := rpc.storage.FetchBatchBySeqNo(builder.ctx, *builder.Param) + l2Head, err := rpc.storage.FetchBatchHeaderBySeqNo(builder.ctx, *builder.Param) if err == nil { // todo - we should return an error when head state is not available, but for current test situations with race // conditions we allow it to return zero while head state is uninitialized diff --git a/go/enclave/storage/enclavedb/batch.go b/go/enclave/storage/enclavedb/batch.go index 6ed0cd035a..005cb69f73 100644 --- a/go/enclave/storage/enclavedb/batch.go +++ b/go/enclave/storage/enclavedb/batch.go @@ -19,53 +19,21 @@ import ( ) const ( - selectBatch = "select b.header, bb.content from batch b join batch_body bb on b.body=bb.id" - - queryReceipts = "select exec_tx.receipt, tx.content, batch.hash, batch.height from exec_tx join tx on tx.id=exec_tx.tx join batch on batch.sequence=exec_tx.batch " + queryReceipts = "select receipt.content, tx.content, batch.hash, batch.height from receipt join tx on tx.id=receipt.tx join batch on batch.sequence=receipt.batch " ) -// WriteBatchAndTransactions - persists the batch and the transactions -func WriteBatchAndTransactions(ctx context.Context, dbtx *sql.Tx, batch *core.Batch, convertedHash gethcommon.Hash, blockId int64) error { - // todo - optimize for reorgs - batchBodyID := batch.SeqNo().Uint64() - - body, err := rlp.EncodeToBytes(batch.Transactions) - if err != nil { - return fmt.Errorf("could not encode L2 transactions. Cause: %w", err) - } +func WriteBatchHeader(ctx context.Context, dbtx *sql.Tx, batch *core.Batch, convertedHash gethcommon.Hash, blockId int64, isCanonical bool) error { header, err := rlp.EncodeToBytes(batch.Header) if err != nil { return fmt.Errorf("could not encode batch header. Cause: %w", err) } - - _, err = dbtx.ExecContext(ctx, "replace into batch_body values (?,?)", batchBodyID, body) - if err != nil { - return err - } - - isL1ProofCanonical, err := IsCanonicalBlock(ctx, dbtx, &batch.Header.L1Proof) - if err != nil { - return err - } - parentIsCanon, err := IsCanonicalBatch(ctx, dbtx, &batch.Header.ParentHash) - if err != nil { - return err - } - parentIsCanon = parentIsCanon || batch.SeqNo().Uint64() <= common.L2GenesisSeqNo+2 - - // sanity check that the parent is canonical - if isL1ProofCanonical && !parentIsCanon { - panic(fmt.Errorf("invalid chaining. Batch %s is canonical. Parent %s is not", batch.Hash(), batch.Header.ParentHash)) - } - args := []any{ batch.Header.SequencerOrderNo.Uint64(), // sequence convertedHash, // converted_hash batch.Hash(), // hash batch.Header.Number.Uint64(), // height - isL1ProofCanonical, // is_canonical + isCanonical, // is_canonical header, // header blob - batchBodyID, // reference to the batch body batch.Header.L1Proof.Bytes(), // l1 proof hash } if blockId == 0 { @@ -74,14 +42,36 @@ func WriteBatchAndTransactions(ctx context.Context, dbtx *sql.Tx, batch *core.Ba args = append(args, blockId) } args = append(args, false) // executed - _, err = dbtx.ExecContext(ctx, "insert into batch values (?,?,?,?,?,?,?,?,?,?)", args...) + _, err = dbtx.ExecContext(ctx, "insert into batch values (?,?,?,?,?,?,?,?,?)", args...) + return err +} + +func UpdateCanonicalBatch(ctx context.Context, dbtx *sql.Tx, isCanonical bool, blocks []common.L1BlockHash) error { + args := make([]any, 0) + args = append(args, isCanonical) + for _, blockHash := range blocks { + args = append(args, blockHash.Bytes()) + } + + updateBatches := "update batch set is_canonical=? where " + repeat(" l1_proof_hash=? ", "OR", len(blocks)) + _, err := dbtx.ExecContext(ctx, updateBatches, args...) + return err +} + +func ExistsBatchAtHeight(ctx context.Context, dbTx *sql.Tx, height *big.Int) (bool, error) { + var exists bool + err := dbTx.QueryRowContext(ctx, "select exists(select 1 from batch where height=?)", height.Uint64()).Scan(&exists) if err != nil { - return err + return false, err } + return exists, nil +} - // creates a big insert statement for all transactions +// WriteTransactions - persists the batch and the transactions +func WriteTransactions(ctx context.Context, dbtx *sql.Tx, batch *core.Batch, senders []*uint64) error { + // creates a batch insert statement for all entries if len(batch.Transactions) > 0 { - insert := "replace into tx (hash, content, sender_address, nonce, idx, body) values " + repeat("(?,?,?,?,?,?)", ",", len(batch.Transactions)) + insert := "insert into tx (hash, content, sender_address, idx, batch_height) values " + repeat("(?,?,?,?,?)", ",", len(batch.Transactions)) args := make([]any, 0) for i, transaction := range batch.Transactions { @@ -90,28 +80,21 @@ func WriteBatchAndTransactions(ctx context.Context, dbtx *sql.Tx, batch *core.Ba return fmt.Errorf("failed to encode block receipts. Cause: %w", err) } - from, err := types.Sender(types.LatestSignerForChainID(transaction.ChainId()), transaction) - if err != nil { - return fmt.Errorf("unable to convert tx to message - %w", err) - } - - args = append(args, transaction.Hash()) // tx_hash - args = append(args, txBytes) // content - args = append(args, from.Bytes()) // sender_address - args = append(args, transaction.Nonce()) // nonce - args = append(args, i) // idx - args = append(args, batchBodyID) // the batch body which contained it + args = append(args, transaction.Hash()) // tx_hash + args = append(args, txBytes) // content + args = append(args, senders[i]) // sender_address + args = append(args, i) // idx + args = append(args, batch.Header.Number.Uint64()) // the batch height which contained it } - _, err = dbtx.ExecContext(ctx, insert, args...) + _, err := dbtx.ExecContext(ctx, insert, args...) if err != nil { return err } } - return nil } -func IsCanonicalBatch(ctx context.Context, dbtx *sql.Tx, hash *gethcommon.Hash) (bool, error) { +func IsCanonicalBatchHash(ctx context.Context, dbtx *sql.Tx, hash *gethcommon.Hash) (bool, error) { var isCanon bool err := dbtx.QueryRowContext(ctx, "select is_canonical from batch where hash=? ", hash.Bytes()).Scan(&isCanon) if err != nil { @@ -135,75 +118,64 @@ func IsCanonicalBatchSeq(ctx context.Context, db *sql.DB, seqNo uint64) (bool, e return isCanon, err } -// WriteBatchExecution - save receipts -func WriteBatchExecution(ctx context.Context, dbtx *sql.Tx, seqNo *big.Int, receipts []*types.Receipt) error { +func MarkBatchExecuted(ctx context.Context, dbtx *sql.Tx, seqNo *big.Int) error { _, err := dbtx.ExecContext(ctx, "update batch set is_executed=true where sequence=?", seqNo.Uint64()) - if err != nil { - return err - } - - args := make([]any, 0) - for _, receipt := range receipts { - // Convert the receipt into their storage form and serialize them - storageReceipt := (*types.ReceiptForStorage)(receipt) - receiptBytes, err := rlp.EncodeToBytes(storageReceipt) - if err != nil { - return fmt.Errorf("failed to encode block receipts. Cause: %w", err) - } + return err +} - // ignore the error because synthetic transactions will not be inserted - txId, _ := GetTxId(ctx, dbtx, storageReceipt.TxHash) - args = append(args, receipt.ContractAddress.Bytes()) // created_contract_address - args = append(args, receiptBytes) // the serialised receipt - if txId == 0 { - args = append(args, nil) // tx id - } else { - args = append(args, txId) // tx id - } - args = append(args, seqNo.Uint64()) // batch_seq +func WriteReceipt(ctx context.Context, dbtx *sql.Tx, batchSeqNo uint64, txId *uint64, receipt []byte) (uint64, error) { + insert := "insert into receipt (content, tx, batch) values " + "(?,?,?)" + res, err := dbtx.ExecContext(ctx, insert, receipt, txId, batchSeqNo) + if err != nil { + return 0, err } - if len(args) > 0 { - insert := "insert into exec_tx (created_contract_address, receipt, tx, batch) values " + repeat("(?,?,?,?)", ",", len(receipts)) - _, err = dbtx.ExecContext(ctx, insert, args...) - if err != nil { - return err - } + id, err := res.LastInsertId() + if err != nil { + return 0, err } - return nil + return uint64(id), nil } -func GetTxId(ctx context.Context, dbtx *sql.Tx, txHash gethcommon.Hash) (int64, error) { - var txId int64 - err := dbtx.QueryRowContext(ctx, "select id from tx where hash=? ", txHash.Bytes()).Scan(&txId) - return txId, err +func ReadTransactionIdAndSender(ctx context.Context, dbtx *sql.Tx, txHash gethcommon.Hash) (*uint64, *uint64, error) { + var txId uint64 + var senderId uint64 + err := dbtx.QueryRowContext(ctx, "select id,sender_address from tx where hash=? ", txHash.Bytes()).Scan(&txId, &senderId) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + // make sure the error is converted to obscuro-wide not found error + return nil, nil, errutil.ErrNotFound + } + return nil, nil, err + } + return &txId, &senderId, err } -func ReadBatchBySeqNo(ctx context.Context, db *sql.DB, seqNo uint64) (*core.Batch, error) { - return fetchBatch(ctx, db, " where sequence=?", seqNo) +func ReadBatchHeaderBySeqNo(ctx context.Context, db *sql.DB, seqNo uint64) (*common.BatchHeader, error) { + return fetchBatchHeader(ctx, db, " where sequence=?", seqNo) } -func ReadBatchByHash(ctx context.Context, db *sql.DB, hash common.L2BatchHash) (*core.Batch, error) { - return fetchBatch(ctx, db, " where b.hash=? ", hash.Bytes()) +func ReadBatchHeaderByHash(ctx context.Context, db *sql.DB, hash common.L2BatchHash) (*common.BatchHeader, error) { + return fetchBatchHeader(ctx, db, " where b.hash=? ", hash.Bytes()) } -func ReadCanonicalBatchByHeight(ctx context.Context, db *sql.DB, height uint64) (*core.Batch, error) { - return fetchBatch(ctx, db, " where b.height=? and is_canonical=true", height) +func ReadCanonicalBatchHeaderByHeight(ctx context.Context, db *sql.DB, height uint64) (*common.BatchHeader, error) { + return fetchBatchHeader(ctx, db, " where b.height=? and is_canonical=true", height) } -func ReadNonCanonicalBatches(ctx context.Context, db *sql.DB, startAtSeq uint64, endSeq uint64) ([]*core.Batch, error) { +func ReadNonCanonicalBatches(ctx context.Context, db *sql.DB, startAtSeq uint64, endSeq uint64) ([]*common.BatchHeader, error) { return fetchBatches(ctx, db, " where b.sequence>=? and b.sequence <=? and b.is_canonical=false order by b.sequence", startAtSeq, endSeq) } -func ReadCanonicalBatches(ctx context.Context, db *sql.DB, startAtSeq uint64, endSeq uint64) ([]*core.Batch, error) { +func ReadCanonicalBatches(ctx context.Context, db *sql.DB, startAtSeq uint64, endSeq uint64) ([]*common.BatchHeader, error) { return fetchBatches(ctx, db, " where b.sequence>=? and b.sequence <=? and b.is_canonical=true order by b.sequence", startAtSeq, endSeq) } // todo - is there a better way to write this query? -func ReadCurrentHeadBatch(ctx context.Context, db *sql.DB) (*core.Batch, error) { - return fetchBatch(ctx, db, " where b.is_canonical=true and b.is_executed=true and b.height=(select max(b1.height) from batch b1 where b1.is_canonical=true and b1.is_executed=true)") +func ReadCurrentHeadBatchHeader(ctx context.Context, db *sql.DB) (*common.BatchHeader, error) { + return fetchBatchHeader(ctx, db, " where b.is_canonical=true and b.is_executed=true and b.height=(select max(b1.height) from batch b1 where b1.is_canonical=true and b1.is_executed=true)") } -func ReadBatchesByBlock(ctx context.Context, db *sql.DB, hash common.L1BlockHash) ([]*core.Batch, error) { +func ReadBatchesByBlock(ctx context.Context, db *sql.DB, hash common.L1BlockHash) ([]*common.BatchHeader, error) { return fetchBatches(ctx, db, " where l1_proof_hash=? order by b.sequence", hash.Bytes()) } @@ -224,15 +196,14 @@ func ReadCurrentSequencerNo(ctx context.Context, db *sql.DB) (*big.Int, error) { return big.NewInt(seq.Int64), nil } -func fetchBatch(ctx context.Context, db *sql.DB, whereQuery string, args ...any) (*core.Batch, error) { +func fetchBatchHeader(ctx context.Context, db *sql.DB, whereQuery string, args ...any) (*common.BatchHeader, error) { var header string - var body []byte - query := selectBatch + " " + whereQuery + query := "select b.header from batch b " + whereQuery var err error if len(args) > 0 { - err = db.QueryRowContext(ctx, query, args...).Scan(&header, &body) + err = db.QueryRowContext(ctx, query, args...).Scan(&header) } else { - err = db.QueryRowContext(ctx, query).Scan(&header, &body) + err = db.QueryRowContext(ctx, query).Scan(&header) } if err != nil { if errors.Is(err, sql.ErrNoRows) { @@ -245,23 +216,14 @@ func fetchBatch(ctx context.Context, db *sql.DB, whereQuery string, args ...any) if err := rlp.DecodeBytes([]byte(header), h); err != nil { return nil, fmt.Errorf("could not decode batch header. Cause: %w", err) } - txs := new([]*common.L2Tx) - if err := rlp.DecodeBytes(body, txs); err != nil { - return nil, fmt.Errorf("could not decode L2 transactions %v. Cause: %w", body, err) - } - - b := core.Batch{ - Header: h, - Transactions: *txs, - } - return &b, nil + return h, nil } -func fetchBatches(ctx context.Context, db *sql.DB, whereQuery string, args ...any) ([]*core.Batch, error) { - result := make([]*core.Batch, 0) +func fetchBatches(ctx context.Context, db *sql.DB, whereQuery string, args ...any) ([]*common.BatchHeader, error) { + result := make([]*common.BatchHeader, 0) - rows, err := db.QueryContext(ctx, selectBatch+" "+whereQuery, args...) + rows, err := db.QueryContext(ctx, "select b.header from batch b "+whereQuery, args...) if err != nil { if errors.Is(err, sql.ErrNoRows) { // make sure the error is converted to obscuro-wide not found error @@ -275,8 +237,7 @@ func fetchBatches(ctx context.Context, db *sql.DB, whereQuery string, args ...an } for rows.Next() { var header string - var body []byte - err := rows.Scan(&header, &body) + err := rows.Scan(&header) if err != nil { return nil, err } @@ -284,16 +245,8 @@ func fetchBatches(ctx context.Context, db *sql.DB, whereQuery string, args ...an if err := rlp.DecodeBytes([]byte(header), h); err != nil { return nil, fmt.Errorf("could not decode batch header. Cause: %w", err) } - txs := new([]*common.L2Tx) - if err := rlp.DecodeBytes(body, txs); err != nil { - return nil, fmt.Errorf("could not decode L2 transactions %v. Cause: %w", body, err) - } - result = append(result, - &core.Batch{ - Header: h, - Transactions: *txs, - }) + result = append(result, h) } return result, nil } @@ -347,20 +300,8 @@ func selectReceipts(ctx context.Context, db *sql.DB, config *params.ChainConfig, return allReceipts, nil } -// ReadReceiptsByBatchHash retrieves all the transaction receipts belonging to a block, including -// its corresponding metadata fields. If it is unable to populate these metadata -// fields then nil is returned. -// -// The current implementation populates these metadata fields by reading the receipts' -// corresponding block body, so if the block body is not found it will return nil even -// if the receipt itself is stored. -func ReadReceiptsByBatchHash(ctx context.Context, db *sql.DB, hash common.L2BatchHash, config *params.ChainConfig) (types.Receipts, error) { - return selectReceipts(ctx, db, config, "where batch.hash=? ", hash.Bytes()) -} - func ReadReceipt(ctx context.Context, db *sql.DB, txHash common.L2TxHash, config *params.ChainConfig) (*types.Receipt, error) { - // todo - canonical? - row := db.QueryRowContext(ctx, queryReceipts+" where tx.hash=? ", txHash.Bytes()) + row := db.QueryRowContext(ctx, queryReceipts+" where batch.is_canonical=true AND tx.hash=? ", txHash.Bytes()) // receipt, tx, batch, height var receiptData []byte var txData []byte @@ -397,7 +338,7 @@ func ReadReceipt(ctx context.Context, db *sql.DB, txHash common.L2TxHash, config func ReadTransaction(ctx context.Context, db *sql.DB, txHash gethcommon.Hash) (*types.Transaction, common.L2BatchHash, uint64, uint64, error) { row := db.QueryRowContext(ctx, - "select tx.content, batch.hash, batch.height, tx.idx from exec_tx join tx on tx.id=exec_tx.tx join batch on batch.sequence=exec_tx.batch where batch.is_canonical=true and tx.hash=?", + "select tx.content, batch.hash, batch.height, tx.idx from receipt join tx on tx.id=receipt.tx join batch on batch.sequence=receipt.batch where batch.is_canonical=true and tx.hash=?", txHash.Bytes()) // tx, batch, height, idx @@ -422,11 +363,10 @@ func ReadTransaction(ctx context.Context, db *sql.DB, txHash gethcommon.Hash) (* return tx, batch, height, idx, nil } -func GetContractCreationTx(ctx context.Context, db *sql.DB, address gethcommon.Address) (*gethcommon.Hash, error) { - row := db.QueryRowContext(ctx, "select tx.hash from exec_tx join tx on tx.id=exec_tx.tx where created_contract_address=? ", address.Bytes()) +func ReadBatchTransactions(ctx context.Context, db *sql.DB, height uint64) ([]*common.L2Tx, error) { + var txs []*common.L2Tx - var txHashBytes []byte - err := row.Scan(&txHashBytes) + rows, err := db.QueryContext(ctx, "select content from tx where batch_height=? order by idx", height) if err != nil { if errors.Is(err, sql.ErrNoRows) { // make sure the error is converted to obscuro-wide not found error @@ -434,13 +374,29 @@ func GetContractCreationTx(ctx context.Context, db *sql.DB, address gethcommon.A } return nil, err } - txHash := gethcommon.Hash{} - txHash.SetBytes(txHashBytes) - return &txHash, nil + defer rows.Close() + for rows.Next() { + // receipt, tx, batch, height + var txContent []byte + err := rows.Scan(&txContent) + if err != nil { + return nil, err + } + tx := new(common.L2Tx) + if err := rlp.DecodeBytes(txContent, tx); err != nil { + return nil, fmt.Errorf("could not decode L2 transaction. Cause: %w", err) + } + txs = append(txs, tx) + } + if rows.Err() != nil { + return nil, rows.Err() + } + + return txs, nil } func ReadContractCreationCount(ctx context.Context, db *sql.DB) (*big.Int, error) { - row := db.QueryRowContext(ctx, "select count( distinct created_contract_address) from exec_tx ") + row := db.QueryRowContext(ctx, "select count(id) from contract") var count int64 err := row.Scan(&count) @@ -451,7 +407,7 @@ func ReadContractCreationCount(ctx context.Context, db *sql.DB) (*big.Int, error return big.NewInt(count), nil } -func ReadUnexecutedBatches(ctx context.Context, db *sql.DB, from *big.Int) ([]*core.Batch, error) { +func ReadUnexecutedBatches(ctx context.Context, db *sql.DB, from *big.Int) ([]*common.BatchHeader, error) { return fetchBatches(ctx, db, "where is_executed=false and is_canonical=true and sequence >= ? order by b.sequence", from.Uint64()) } @@ -476,7 +432,7 @@ func GetTransactionsPerAddress(ctx context.Context, db *sql.DB, config *params.C } func CountTransactionsPerAddress(ctx context.Context, db *sql.DB, address *gethcommon.Address) (uint64, error) { - row := db.QueryRowContext(ctx, "select count(1) from exec_tx join tx on tx.id=exec_tx.tx join batch on batch.sequence=exec_tx.batch "+" where tx.sender_address = ?", address.Bytes()) + row := db.QueryRowContext(ctx, "select count(1) from receipt join tx on tx.id=receipt.tx join batch on batch.sequence=receipt.batch "+" where tx.sender_address = ?", address.Bytes()) var count uint64 err := row.Scan(&count) diff --git a/go/enclave/storage/enclavedb/block.go b/go/enclave/storage/enclavedb/block.go index 3ded5d150d..2e9cd6e35e 100644 --- a/go/enclave/storage/enclavedb/block.go +++ b/go/enclave/storage/enclavedb/block.go @@ -10,8 +10,6 @@ import ( gethcommon "github.com/ethereum/go-ethereum/common" - gethlog "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/rlp" "github.com/ten-protocol/go-ten/go/common" @@ -33,28 +31,16 @@ func WriteBlock(ctx context.Context, dbtx *sql.Tx, b *types.Header) error { return err } -func UpdateCanonicalValue(ctx context.Context, dbtx *sql.Tx, isCanonical bool, blocks []common.L1BlockHash, _ gethlog.Logger) error { - currentBlocks := repeat(" hash=? ", "OR", len(blocks)) - +func UpdateCanonicalBlock(ctx context.Context, dbtx *sql.Tx, isCanonical bool, blocks []common.L1BlockHash) error { args := make([]any, 0) args = append(args, isCanonical) for _, blockHash := range blocks { args = append(args, blockHash.Bytes()) } - updateBlocks := "update block set is_canonical=? where " + currentBlocks + updateBlocks := "update block set is_canonical=? where " + repeat(" hash=? ", "OR", len(blocks)) _, err := dbtx.ExecContext(ctx, updateBlocks, args...) - if err != nil { - return err - } - - updateBatches := "update batch set is_canonical=? where l1_proof in (select id from block where " + currentBlocks + ")" - _, err = dbtx.ExecContext(ctx, updateBatches, args...) - if err != nil { - return err - } - - return nil + return err } func IsCanonicalBlock(ctx context.Context, dbtx *sql.Tx, hash *gethcommon.Hash) (bool, error) { diff --git a/go/enclave/storage/enclavedb/events.go b/go/enclave/storage/enclavedb/events.go index 67a0a90ca7..dc53b3994d 100644 --- a/go/enclave/storage/enclavedb/events.go +++ b/go/enclave/storage/enclavedb/events.go @@ -3,137 +3,90 @@ package enclavedb import ( "context" "database/sql" + "errors" "fmt" "math/big" + "strconv" - "github.com/ten-protocol/go-ten/go/enclave/core" + "github.com/ten-protocol/go-ten/go/common/errutil" gethcommon "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ten-protocol/go-ten/go/common" "github.com/ten-protocol/go-ten/go/common/tracers" ) const ( - baseEventsJoin = "from events e join exec_tx extx on e.tx=extx.tx and e.batch=extx.batch join tx on extx.tx=tx.id join batch b on extx.batch=b.sequence where b.is_canonical=true " + baseEventsJoin = "from event_log e " + + "join receipt extx on e.receipt=extx.id" + + " join tx on extx.tx=tx.id " + + " join batch b on extx.batch=b.sequence " + + "join event_type et on e.event_type=et.id " + + " join contract c on et.contract=c.id " + + "left join event_topic t1 on e.topic1=t1.id " + + " left join externally_owned_account eoa1 on t1.rel_address=eoa1.id " + + "left join event_topic t2 on e.topic2=t2.id " + + " left join externally_owned_account eoa2 on t2.rel_address=eoa2.id " + + "left join event_topic t3 on e.topic3=t3.id" + + " left join externally_owned_account eoa3 on t3.rel_address=eoa3.id " + + "where b.is_canonical=true " ) -func StoreEventLogs(ctx context.Context, dbtx *sql.Tx, receipts []*types.Receipt, batch *core.Batch, stateDB *state.StateDB) error { - var args []any - totalLogs := 0 - for _, receipt := range receipts { - for _, l := range receipt.Logs { - logArgs, err := logDBValues(ctx, dbtx, l, stateDB) - if err != nil { - return err - } - args = append(args, logArgs...) - txId, _ := GetTxId(ctx, dbtx, l.TxHash) - if txId == 0 { - args = append(args, nil) - } else { - args = append(args, txId) - } - args = append(args, batch.SeqNo().Uint64()) - totalLogs++ - } +func WriteEventType(ctx context.Context, dbTX *sql.Tx, contractID *uint64, eventSignature gethcommon.Hash, isLifecycle bool) (uint64, error) { + res, err := dbTX.ExecContext(ctx, "insert into event_type (contract, event_sig, lifecycle_event) values (?, ?, ?)", contractID, eventSignature.Bytes(), isLifecycle) + if err != nil { + return 0, err } - if totalLogs > 0 { - query := "insert into events (topic0,topic1,topic2,topic3,topic4,datablob,log_idx,address,lifecycle_event,rel_address1,rel_address2,rel_address3,rel_address4,tx,batch) values " + - repeat("(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", ",", totalLogs) - _, err := dbtx.ExecContext(ctx, query, args...) - if err != nil { - return err - } + id, err := res.LastInsertId() + if err != nil { + return 0, err } - return nil + return uint64(id), nil } -// This method stores a log entry together with relevancy metadata -// Each types.Log has 5 indexable topics, where the first one is the event signature hash -// The other 4 topics are set by the programmer -// According to the data relevancy rules, an event is relevant to accounts referenced directly in topics -// If the event is not referring any user address, it is considered a "lifecycle event", and is relevant to everyone -func logDBValues(ctx context.Context, db *sql.Tx, l *types.Log, stateDB *state.StateDB) ([]any, error) { - // The topics are stored in an array with a maximum of 5 entries, but usually less - var t0, t1, t2, t3, t4 []byte - - // these are the addresses to which this event might be relevant to. - var addr1, addr2, addr3, addr4 *gethcommon.Address - var a1, a2, a3, a4 []byte - - // start with true, and as soon as a user address is discovered, it becomes false - isLifecycle := true - - // internal variable - var isUserAccount bool - - n := len(l.Topics) - if n > 0 { - t0 = l.Topics[0].Bytes() - } - var err error - // for every indexed topic, check whether it is an end user account - // if yes, then mark it as relevant for that account - if n > 1 { - t1 = l.Topics[1].Bytes() - isUserAccount, addr1, err = isEndUserAccount(ctx, db, l.Topics[1], stateDB) - if err != nil { - return nil, err - } - isLifecycle = isLifecycle && !isUserAccount - if addr1 != nil { - a1 = addr1.Bytes() - } +func ReadEventType(ctx context.Context, dbTX *sql.Tx, contractId uint64, eventSignature gethcommon.Hash) (uint64, bool, error) { + var id uint64 + var isLifecycle bool + err := dbTX.QueryRowContext(ctx, "select id, lifecycle_event from event_type where contract=? and event_sig=?", contractId, eventSignature.Bytes()).Scan(&id, &isLifecycle) + if errors.Is(err, sql.ErrNoRows) { + // make sure the error is converted to obscuro-wide not found error + return 0, false, errutil.ErrNotFound } - if n > 2 { - t2 = l.Topics[2].Bytes() - isUserAccount, addr2, err = isEndUserAccount(ctx, db, l.Topics[2], stateDB) - if err != nil { - return nil, err - } - isLifecycle = isLifecycle && !isUserAccount - if addr2 != nil { - a2 = addr2.Bytes() - } - } - if n > 3 { - t3 = l.Topics[3].Bytes() - isUserAccount, addr3, err = isEndUserAccount(ctx, db, l.Topics[3], stateDB) - if err != nil { - return nil, err - } - isLifecycle = isLifecycle && !isUserAccount - if addr3 != nil { - a3 = addr3.Bytes() - } + return id, isLifecycle, err +} + +func WriteEventTopic(ctx context.Context, dbTX *sql.Tx, topic *gethcommon.Hash, addressId *uint64) (uint64, error) { + res, err := dbTX.ExecContext(ctx, "insert into event_topic (topic, rel_address) values (?, ?)", topic.Bytes(), addressId) + if err != nil { + return 0, err } - if n > 4 { - t4 = l.Topics[4].Bytes() - isUserAccount, addr4, err = isEndUserAccount(ctx, db, l.Topics[4], stateDB) - if err != nil { - return nil, err - } - isLifecycle = isLifecycle && !isUserAccount - if addr4 != nil { - a4 = addr4.Bytes() - } + id, err := res.LastInsertId() + if err != nil { + return 0, err } + return uint64(id), nil +} + +func UpdateEventTopicLifecycle(ctx context.Context, dbTx *sql.Tx, etId uint64, isLifecycle bool) error { + _, err := dbTx.ExecContext(ctx, "update event_topic set lifecycle_event=? where id=?", isLifecycle, etId) + return err +} - // normalise the data field to nil to avoid duplicates - data := l.Data - if len(data) == 0 { - data = nil +func ReadEventTopic(ctx context.Context, dbTX *sql.Tx, topic []byte) (uint64, *uint64, error) { + var id uint64 + var address *uint64 + err := dbTX.QueryRowContext(ctx, "select id, rel_address from event_topic where topic=? ", topic).Scan(&id, &address) + if errors.Is(err, sql.ErrNoRows) { + // make sure the error is converted to obscuro-wide not found error + return 0, nil, errutil.ErrNotFound } + return id, address, err +} - return []any{ - t0, t1, t2, t3, t4, - data, l.Index, - l.Address.Bytes(), - isLifecycle, - a1, a2, a3, a4, - }, nil +func WriteEventLog(ctx context.Context, dbTX *sql.Tx, eventTypeId uint64, userTopics []*uint64, data []byte, logIdx uint, execTx uint64) error { + _, err := dbTX.ExecContext(ctx, "insert into event_log (event_type, topic1, topic2, topic3, datablob, log_idx, receipt) values (?,?,?,?,?,?,?)", + eventTypeId, userTopics[0], userTopics[1], userTopics[2], data, logIdx, execTx) + return err } func FilterLogs( @@ -163,25 +116,25 @@ func FilterLogs( } if len(addresses) > 0 { - cond := repeat("(address=?)", " OR ", len(addresses)) - query += " AND (" + cond + ")" + query += " AND c.address in (" + repeat("?", ",", len(addresses)) + ")" for _, address := range addresses { queryParams = append(queryParams, address.Bytes()) } } - if len(topics) > 5 { + if len(topics) > 4 { return nil, fmt.Errorf("invalid filter. Too many topics") } - if len(topics) > 0 { - for i, sub := range topics { - // empty rule set == wildcard - if len(sub) > 0 { - topicColumn := fmt.Sprintf("topic%d", i) - cond := repeat(fmt.Sprintf("(%s=? )", topicColumn), " OR ", len(sub)) - query += " AND (" + cond + ")" - for _, topic := range sub { - queryParams = append(queryParams, topic.Bytes()) - } + + for i := 0; i < len(topics); i++ { + if len(topics[i]) > 0 { + valuesIn := "IN (" + repeat("?", ",", len(topics[i])) + ")" + if i == 0 { + query += " AND et.event_sig " + valuesIn + } else { + query += " AND t" + strconv.Itoa(i) + ".topic " + valuesIn + } + for _, hash := range topics[i] { + queryParams = append(queryParams, hash.Bytes()) } } } @@ -192,7 +145,7 @@ func FilterLogs( func DebugGetLogs(ctx context.Context, db *sql.DB, txHash common.TxHash) ([]*tracers.DebugLogs, error) { var queryParams []any - query := "select rel_address1, rel_address2, rel_address3, rel_address4, lifecycle_event, topic0, topic1, topic2, topic3, topic4, datablob, b.hash, b.height, tx.hash, tx.idx, log_idx, address " + + query := "select eoa1.address, eoa2.address, eoa3.address, et.lifecycle_event, et.event_sig, t1.topic, t2.topic, t3.topic, datablob, b.hash, b.height, tx.hash, tx.idx, log_idx, c.address " + baseEventsJoin + " AND tx.hash = ? " @@ -214,15 +167,14 @@ func DebugGetLogs(ctx context.Context, db *sql.DB, txHash common.TxHash) ([]*tra LifecycleEvent: false, } - var t0, t1, t2, t3, t4 sql.NullString - var relAddress1, relAddress2, relAddress3, relAddress4 []byte + var t0, t1, t2, t3 sql.NullString + var relAddress1, relAddress2, relAddress3 []byte err = rows.Scan( &relAddress1, &relAddress2, &relAddress3, - &relAddress4, &l.LifecycleEvent, - &t0, &t1, &t2, &t3, &t4, + &t0, &t1, &t2, &t3, &l.Data, &l.BlockHash, &l.BlockNumber, @@ -235,7 +187,7 @@ func DebugGetLogs(ctx context.Context, db *sql.DB, txHash common.TxHash) ([]*tra return nil, fmt.Errorf("could not load log entry from db: %w", err) } - for _, topic := range []sql.NullString{t0, t1, t2, t3, t4} { + for _, topic := range []sql.NullString{t0, t1, t2, t3} { if topic.Valid { l.Topics = append(l.Topics, stringToHash(topic)) } @@ -244,7 +196,6 @@ func DebugGetLogs(ctx context.Context, db *sql.DB, txHash common.TxHash) ([]*tra l.RelAddress1 = bytesToAddress(relAddress1) l.RelAddress2 = bytesToAddress(relAddress2) l.RelAddress3 = bytesToAddress(relAddress3) - l.RelAddress4 = bytesToAddress(relAddress4) result = append(result, &l) } @@ -264,60 +215,21 @@ func bytesToAddress(b []byte) *gethcommon.Address { return nil } -// Of the log's topics, returns those that are (potentially) user addresses. A topic is considered a user address if: -// - It has at least 12 leading zero bytes (since addresses are 20 bytes long, while hashes are 32) and at most 22 leading zero bytes -// - It does not have associated code (meaning it's a smart-contract address) -// - It has a non-zero nonce (to prevent accidental or malicious creation of the address matching a given topic, -// forcing its events to become permanently private (this is not implemented for now) -// -// todo - find a more efficient way -func isEndUserAccount(ctx context.Context, db *sql.Tx, topic gethcommon.Hash, stateDB *state.StateDB) (bool, *gethcommon.Address, error) { - potentialAddr := common.ExtractPotentialAddress(topic) - if potentialAddr == nil { - return false, nil, nil - } - addrBytes := potentialAddr.Bytes() - // Check the database if there are already entries for this address - var count int - query := "select count(*) from events where (rel_address1=?) OR (rel_address2=?) OR (rel_address3=? ) OR (rel_address4=? )" - err := db.QueryRowContext(ctx, query, addrBytes, addrBytes, addrBytes, addrBytes).Scan(&count) - if err != nil { - // exit here - return false, nil, err - } - - if count > 0 { - return true, potentialAddr, nil - } - - // TODO A user address must have a non-zero nonce. This prevents accidental or malicious sending of funds to an - // address matching a topic, forcing its events to become permanently private. - // if db.GetNonce(potentialAddr) != 0 - - // If the address has code, it's a smart contract address instead. - if stateDB.GetCode(*potentialAddr) == nil { - return true, potentialAddr, nil - } - - return false, nil, nil -} - // utility function that knows how to load relevant logs from the database // todo always pass in the actual batch hashes because of reorgs, or make sure to clean up log entries from discarded batches func loadLogs(ctx context.Context, db *sql.DB, requestingAccount *gethcommon.Address, whereCondition string, whereParams []any) ([]*types.Log, error) { - if requestingAccount == nil { + if requestingAccount == nil { // todo - only restrict to lifecycle events if requesting==nil return nil, fmt.Errorf("logs can only be requested for an account") } result := make([]*types.Log, 0) - query := "select topic0, topic1, topic2, topic3, topic4, datablob, b.hash, b.height, tx.hash, tx.idx, log_idx, address" + " " + baseEventsJoin + query := "select et.event_sig, t1.topic, t2.topic, t3.topic, datablob, b.hash, b.height, tx.hash, tx.idx, log_idx, c.address" + " " + baseEventsJoin var queryParams []any // Add relevancy rules // An event is considered relevant to all account owners whose addresses are used as topics in the event. // In case there are no account addresses in an event's topics, then the event is considered relevant to everyone (known as a "lifecycle event"). - query += " AND (lifecycle_event OR (rel_address1=? OR rel_address2=? OR rel_address3=? OR rel_address4=?)) " - queryParams = append(queryParams, requestingAccount.Bytes()) + query += " AND (et.lifecycle_event=true OR eoa1.address=? OR eoa2.address=? OR eoa3.address=?) " queryParams = append(queryParams, requestingAccount.Bytes()) queryParams = append(queryParams, requestingAccount.Bytes()) queryParams = append(queryParams, requestingAccount.Bytes()) @@ -335,15 +247,15 @@ func loadLogs(ctx context.Context, db *sql.DB, requestingAccount *gethcommon.Add for rows.Next() { l := types.Log{ - Topics: []gethcommon.Hash{}, + Topics: make([]gethcommon.Hash, 0), } - var t0, t1, t2, t3, t4 []byte - err = rows.Scan(&t0, &t1, &t2, &t3, &t4, &l.Data, &l.BlockHash, &l.BlockNumber, &l.TxHash, &l.TxIndex, &l.Index, &l.Address) + var t0, t1, t2, t3 []byte + err = rows.Scan(&t0, &t1, &t2, &t3, &l.Data, &l.BlockHash, &l.BlockNumber, &l.TxHash, &l.TxIndex, &l.Index, &l.Address) if err != nil { return nil, fmt.Errorf("could not load log entry from db: %w", err) } - for _, topic := range [][]byte{t0, t1, t2, t3, t4} { + for _, topic := range [][]byte{t0, t1, t2, t3} { if len(topic) > 0 { l.Topics = append(l.Topics, byteArrayToHash(topic)) } @@ -359,6 +271,81 @@ func loadLogs(ctx context.Context, db *sql.DB, requestingAccount *gethcommon.Add return result, nil } +func WriteEoa(ctx context.Context, dbTX *sql.Tx, sender gethcommon.Address) (uint64, error) { + insert := "insert into externally_owned_account (address) values (?)" + res, err := dbTX.ExecContext(ctx, insert, sender.Bytes()) + if err != nil { + return 0, err + } + id, err := res.LastInsertId() + if err != nil { + return 0, err + } + return uint64(id), nil +} + +func ReadEoa(ctx context.Context, dbTx *sql.Tx, addr gethcommon.Address) (uint64, error) { + row := dbTx.QueryRowContext(ctx, "select id from externally_owned_account where address = ?", addr.Bytes()) + + var id uint64 + err := row.Scan(&id) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + // make sure the error is converted to obscuro-wide not found error + return 0, errutil.ErrNotFound + } + return 0, err + } + + return id, nil +} + +func WriteContractAddress(ctx context.Context, dbTX *sql.Tx, contractAddress *gethcommon.Address, eoaId uint64) (*uint64, error) { + insert := "insert into contract (address, owner) values (?,?)" + res, err := dbTX.ExecContext(ctx, insert, contractAddress.Bytes(), eoaId) + if err != nil { + return nil, err + } + id, err := res.LastInsertId() + if err != nil { + return nil, err + } + v := uint64(id) + return &v, nil +} + +func ReadContractAddress(ctx context.Context, dbTx *sql.Tx, addr gethcommon.Address) (*uint64, error) { + row := dbTx.QueryRowContext(ctx, "select id from contract where address = ?", addr.Bytes()) + + var id uint64 + err := row.Scan(&id) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + // make sure the error is converted to obscuro-wide not found error + return nil, errutil.ErrNotFound + } + return nil, err + } + + return &id, nil +} + +func ReadContractOwner(ctx context.Context, db *sql.DB, address gethcommon.Address) (*gethcommon.Address, error) { + row := db.QueryRowContext(ctx, "select eoa.address from contract c join externally_owned_account eoa on c.owner=eoa.id where c.address = ?", address.Bytes()) + + var eoaAddress gethcommon.Address + err := row.Scan(&eoaAddress) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + // make sure the error is converted to obscuro-wide not found error + return nil, errutil.ErrNotFound + } + return nil, err + } + + return &eoaAddress, nil +} + func stringToHash(ns sql.NullString) gethcommon.Hash { value, err := ns.Value() if err != nil { diff --git a/go/enclave/storage/init/edgelessdb/001_init.sql b/go/enclave/storage/init/edgelessdb/001_init.sql index 878b2452c2..48046641b0 100644 --- a/go/enclave/storage/init/edgelessdb/001_init.sql +++ b/go/enclave/storage/init/edgelessdb/001_init.sql @@ -7,7 +7,6 @@ create table if not exists obsdb.keyvalue ky varbinary(64) NOT NULL, val mediumblob NOT NULL, primary key (id), - UNIQUE (ky), INDEX USING HASH (ky) ); GRANT ALL ON obsdb.keyvalue TO obscuro; @@ -39,7 +38,7 @@ create table if not exists obsdb.block height int NOT NULL, primary key (id), INDEX (height), - INDEX USING HASH (hash(8)) + INDEX USING HASH (hash) ); GRANT ALL ON obsdb.block TO obscuro; @@ -64,19 +63,11 @@ create table if not exists obsdb.rollup header blob NOT NULL, compression_block INTEGER NOT NULL, INDEX (compression_block), - INDEX USING HASH (hash(8)), + INDEX USING HASH (hash), primary key (id) ); GRANT ALL ON obsdb.rollup TO obscuro; -create table if not exists obsdb.batch_body -( - id INTEGER, - content mediumblob NOT NULL, - primary key (id) -); -GRANT ALL ON obsdb.batch_body TO obscuro; - create table if not exists obsdb.batch ( sequence INTEGER, @@ -85,14 +76,12 @@ create table if not exists obsdb.batch height int NOT NULL, is_canonical boolean NOT NULL, header blob NOT NULL, - body int NOT NULL, l1_proof_hash binary(32) NOT NULL, l1_proof INTEGER, is_executed boolean NOT NULL, primary key (sequence), - INDEX USING HASH (hash(8)), - INDEX USING HASH (l1_proof_hash(8)), - INDEX (body), + INDEX USING HASH (hash), + INDEX USING HASH (l1_proof_hash), INDEX (l1_proof), INDEX (height) ); @@ -103,58 +92,80 @@ create table if not exists obsdb.tx id INTEGER AUTO_INCREMENT, hash binary(32) NOT NULL, content mediumblob NOT NULL, - sender_address binary(20) NOT NULL, - nonce int NOT NULL, + sender_address int NOT NULL, idx int NOT NULL, - body int NOT NULL, - INDEX USING HASH (hash(8)), - INDEX USING HASH (sender_address), + batch_height int NOT NULL, + INDEX USING HASH (hash), + INDEX (sender_address), + INDEX (batch_height, idx), primary key (id) ); GRANT ALL ON obsdb.tx TO obscuro; -create table if not exists obsdb.exec_tx +create table if not exists obsdb.receipt ( id INTEGER AUTO_INCREMENT, - created_contract_address binary(20), - receipt mediumblob, + content mediumblob, tx int, batch int NOT NULL, INDEX (batch), - INDEX (tx, created_contract_address(4)), + INDEX (tx), primary key (id) ); -GRANT ALL ON obsdb.exec_tx TO obscuro; +GRANT ALL ON obsdb.receipt TO obscuro; -create table if not exists obsdb.events +create table if not exists obsdb.contract +( + id INTEGER AUTO_INCREMENT, + address binary(20) NOT NULL, + owner int NOT NULL, + primary key (id), + INDEX USING HASH (address) +); +GRANT ALL ON obsdb.contract TO obscuro; + +create table if not exists obsdb.externally_owned_account +( + id INTEGER AUTO_INCREMENT, + address binary(20) NOT NULL, + primary key (id), + INDEX USING HASH (address) +); +GRANT ALL ON obsdb.externally_owned_account TO obscuro; + +create table if not exists obsdb.event_type ( id INTEGER AUTO_INCREMENT, - topic0 binary(32) NOT NULL, - topic1 binary(32), - topic2 binary(32), - topic3 binary(32), - topic4 binary(32), - datablob mediumblob, - log_idx int NOT NULL, - address binary(20) NOT NULL, + contract int NOT NULL, + event_sig binary(32) NOT NULL, lifecycle_event boolean NOT NULL, - rel_address1 binary(20), - rel_address2 binary(20), - rel_address3 binary(20), - rel_address4 binary(20), - tx int NOT NULL, - batch int NOT NULL, primary key (id), - INDEX (tx, batch), - INDEX USING HASH (address(8)), - INDEX USING HASH (rel_address1(8)), - INDEX USING HASH (rel_address2(8)), - INDEX USING HASH (rel_address3(8)), - INDEX USING HASH (rel_address4(8)), - INDEX USING HASH (topic0(8)), - INDEX USING HASH (topic1(8)), - INDEX USING HASH (topic2(8)), - INDEX USING HASH (topic3(8)), - INDEX USING HASH (topic4(8)) + INDEX USING HASH (contract, event_sig) +); +GRANT ALL ON obsdb.event_type TO obscuro; + +create table if not exists obsdb.event_topic +( + id INTEGER AUTO_INCREMENT, + topic binary(32) NOT NULL, + rel_address INTEGER, + primary key (id), + INDEX USING HASH (topic), + INDEX (rel_address) +); +GRANT ALL ON obsdb.event_topic TO obscuro; + +create table if not exists obsdb.event_log +( + id INTEGER AUTO_INCREMENT, + event_type INTEGER NOT NULL, + topic1 INTEGER, + topic2 INTEGER, + topic3 INTEGER, + datablob mediumblob, + log_idx INTEGER NOT NULL, + receipt INTEGER NOT NULL, + primary key (id), + INDEX (receipt, event_type, topic1, topic2, topic3) ); -GRANT ALL ON obsdb.events TO obscuro; \ No newline at end of file +GRANT ALL ON obsdb.event_log TO obscuro; \ No newline at end of file diff --git a/go/enclave/storage/init/sqlite/001_init.sql b/go/enclave/storage/init/sqlite/001_init.sql index 9a0ea2e06b..1085d1a45e 100644 --- a/go/enclave/storage/init/sqlite/001_init.sql +++ b/go/enclave/storage/init/sqlite/001_init.sql @@ -57,12 +57,6 @@ create table if not exists rollup create index ROLLUP_COMPRESSION_BLOCK_IDX on rollup (compression_block); create index ROLLUP_COMPRESSION_HASH_IDX on rollup (hash); -create table if not exists batch_body -( - id int NOT NULL primary key, - content mediumblob NOT NULL -); - create table if not exists batch ( sequence int primary key, @@ -71,7 +65,6 @@ create table if not exists batch height int NOT NULL, is_canonical boolean NOT NULL, header blob NOT NULL, - body int NOT NULL REFERENCES batch_body, l1_proof_hash binary(32) NOT NULL, l1_proof INTEGER, -- normally this would be a FK, but there is a weird edge case where an L2 node might not have the block used to create this batch is_executed boolean NOT NULL @@ -80,7 +73,6 @@ create table if not exists batch ); create index IDX_BATCH_HASH on batch (hash); create index IDX_BATCH_BLOCK on batch (l1_proof_hash); -create index IDX_BATCH_BODY on batch (body); create index IDX_BATCH_L1 on batch (l1_proof); create index IDX_BATCH_HEIGHT on batch (height); @@ -89,54 +81,102 @@ create table if not exists tx id INTEGER PRIMARY KEY AUTOINCREMENT, hash binary(32) NOT NULL, content mediumblob NOT NULL, - sender_address binary(20) NOT NULL, - nonce int NOT NULL, + sender_address int NOT NULL REFERENCES externally_owned_account, idx int NOT NULL, - body int NOT NULL REFERENCES batch_body + batch_height int NOT NULL ); create index IDX_TX_HASH on tx (hash); create index IDX_TX_SENDER_ADDRESS on tx (sender_address); +create index IDX_TX_BATCH_HEIGHT on tx (batch_height, idx); -create table if not exists exec_tx +create table if not exists receipt ( id INTEGER PRIMARY KEY AUTOINCREMENT, - created_contract_address binary(20), - receipt mediumblob, + content mediumblob, -- commenting out the fk until synthetic transactions are also stored tx INTEGER, batch INTEGER NOT NULL REFERENCES batch ); -create index IDX_EX_TX_BATCH on exec_tx (batch); -create index IDX_EX_TX_CCA on exec_tx (tx, created_contract_address); +create index IDX_EX_TX_BATCH on receipt (batch); +create index IDX_EX_TX_CCA on receipt (tx); + +create table if not exists contract +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + address binary(20) NOT NULL, +-- denormalised for ease of access during balance checks + owner int NOT NULL REFERENCES externally_owned_account +); +create index IDX_CONTRACT_AD on contract (address, owner); --- todo denormalize. Extract contract and user table and point topic0 and rel_addreses to it -create table if not exists events +create table if not exists externally_owned_account +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + address binary(20) NOT NULL +); +create index IDX_EOA on externally_owned_account (address); + +-- not very large. An entry for every event_type +create table if not exists event_type ( id INTEGER PRIMARY KEY AUTOINCREMENT, - topic0 binary(32) NOT NULL, - topic1 binary(32), - topic2 binary(32), - topic3 binary(32), - topic4 binary(32), - datablob mediumblob, - log_idx int NOT NULL, - address binary(20) NOT NULL, - lifecycle_event boolean NOT NULL, - rel_address1 binary(20), - rel_address2 binary(20), - rel_address3 binary(20), - rel_address4 binary(20), - tx INTEGER NOT NULL references tx, - batch INTEGER NOT NULL REFERENCES batch + contract INTEGER NOT NULL references contract, + event_sig binary(32) NOT NULL, -- no need to index because there are only a few events for an address + lifecycle_event boolean NOT NULL -- set based on the first event, and then updated to false if it turns out it is true ); -create index IDX_BATCH_TX on events (tx, batch); -create index IDX_AD on events (address); -create index IDX_RAD1 on events (rel_address1); -create index IDX_RAD2 on events (rel_address2); -create index IDX_RAD3 on events (rel_address3); -create index IDX_RAD4 on events (rel_address4); -create index IDX_T0 on events (topic0); -create index IDX_T1 on events (topic1); -create index IDX_T2 on events (topic2); -create index IDX_T3 on events (topic3); -create index IDX_T4 on events (topic4); +create index IDX_EV_CONTRACT on event_type (contract, event_sig); + +-- very large table with user values +create table if not exists event_topic +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + topic binary(32) NOT NULL, + rel_address INTEGER references externally_owned_account +-- pos INTEGER NOT NULL -- todo +); +-- create index IDX_TOP on event_topic (topic, pos); +create index IDX_TOP on event_topic (topic); + +create table if not exists event_log +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + event_type INTEGER NOT NULL references event_type, + topic1 INTEGER references event_topic, + topic2 INTEGER references event_topic, + topic3 INTEGER references event_topic, + datablob mediumblob, + log_idx INTEGER NOT NULL, + receipt INTEGER NOT NULL references receipt +); +-- create index IDX_BATCH_TX on event_log (receipt); +create index IDX_EV on event_log (receipt, event_type, topic1, topic2, topic3); + +-- requester - address +-- receipt - range of batch heights or a single batch +-- address []list of contract addresses +-- topic0 - event sig []list +-- topic1 []list +-- topic2 []list +-- topic3 []list + + +-- select * from event_log +-- join receipt on receipt +-- join batch on receipt.batch -- to get the batch height range +-- join event_type ec on event_type +-- join contract c on +-- left join event_topic t1 on topic1 +-- left join externally_owned_account eoa1 on t1.rel_address +-- left join event_topic t2 on topic2 +-- left join externally_owned_account eoa2 on t2.rel_address +-- left join event_topic t3 on topic3 +-- left join externally_owned_account eoa3 on t3.rel_address +-- where +-- receipt. +-- c.address in [address..] AND +-- ec.event_sig in [topic0..] AND +-- t1.topic in [topic1..] AND +-- t2.topic in [topic2..] AND +-- t3.topic in [topic3..] AND +-- b.height in [] and b.is_canonical=true +-- (ec.lifecycle_event OR eoa1.address=requester OR eoa2.address=requester OR eoa3.address=requester) diff --git a/go/enclave/storage/interfaces.go b/go/enclave/storage/interfaces.go index 88d2340be4..01b7f81586 100644 --- a/go/enclave/storage/interfaces.go +++ b/go/enclave/storage/interfaces.go @@ -42,24 +42,26 @@ type BatchResolver interface { FetchBatch(ctx context.Context, hash common.L2BatchHash) (*core.Batch, error) // FetchBatchHeader returns the batch header with the given hash. FetchBatchHeader(ctx context.Context, hash common.L2BatchHash) (*common.BatchHeader, error) + FetchBatchTransactionsBySeq(ctx context.Context, seqNo uint64) ([]*common.L2Tx, error) // FetchBatchByHeight returns the batch on the canonical chain with the given height. FetchBatchByHeight(ctx context.Context, height uint64) (*core.Batch, error) // FetchBatchBySeqNo returns the batch with the given seq number. FetchBatchBySeqNo(ctx context.Context, seqNum uint64) (*core.Batch, error) - // FetchHeadBatch returns the current head batch of the canonical chain. - FetchHeadBatch(ctx context.Context) (*core.Batch, error) + // FetchBatchHeaderBySeqNo returns the batch header with the given seq number. + FetchBatchHeaderBySeqNo(ctx context.Context, seqNum uint64) (*common.BatchHeader, error) + FetchHeadBatchHeader(ctx context.Context) (*common.BatchHeader, error) // FetchCurrentSequencerNo returns the sequencer number FetchCurrentSequencerNo(ctx context.Context) (*big.Int, error) // FetchBatchesByBlock returns all batches with the block hash as the L1 proof - FetchBatchesByBlock(ctx context.Context, hash common.L1BlockHash) ([]*core.Batch, error) + FetchBatchesByBlock(ctx context.Context, hash common.L1BlockHash) ([]*common.BatchHeader, error) // FetchNonCanonicalBatchesBetween - returns all reorged batches between the sequences - FetchNonCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*core.Batch, error) + FetchNonCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*common.BatchHeader, error) // FetchCanonicalBatchesBetween - returns all canon batches between the sequences - FetchCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*core.Batch, error) + FetchCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*common.BatchHeader, error) // IsBatchCanonical - true if the batch is canonical IsBatchCanonical(ctx context.Context, seq uint64) (bool, error) // FetchCanonicalUnexecutedBatches - return the list of the unexecuted batches that are canonical - FetchCanonicalUnexecutedBatches(context.Context, *big.Int) ([]*core.Batch, error) + FetchCanonicalUnexecutedBatches(context.Context, *big.Int) ([]*common.BatchHeader, error) FetchConvertedHash(ctx context.Context, hash common.L2BatchHash) (gethcommon.Hash, error) @@ -69,7 +71,7 @@ type BatchResolver interface { // StoreBatch stores an un-executed batch. StoreBatch(ctx context.Context, batch *core.Batch, convertedHash gethcommon.Hash) error // StoreExecutedBatch - store the batch after it was executed - StoreExecutedBatch(ctx context.Context, batch *core.Batch, receipts []*types.Receipt) error + StoreExecutedBatch(ctx context.Context, batch *common.BatchHeader, receipts []*types.Receipt, contracts map[gethcommon.Hash][]*gethcommon.Address) error // StoreRollup StoreRollup(ctx context.Context, rollup *common.ExtRollup, header *common.CalldataRollupHeader) error @@ -96,10 +98,6 @@ type TransactionStorage interface { GetTransaction(ctx context.Context, txHash common.L2TxHash) (*types.Transaction, common.L2BatchHash, uint64, uint64, error) // GetTransactionReceipt - returns the receipt of a tx by tx hash GetTransactionReceipt(ctx context.Context, txHash common.L2TxHash) (*types.Receipt, error) - // GetReceiptsByBatchHash retrieves the receipts for all transactions in a given rollup. - GetReceiptsByBatchHash(ctx context.Context, hash common.L2BatchHash) (types.Receipts, error) - // GetContractCreationTx returns the hash of the tx that created a contract - GetContractCreationTx(ctx context.Context, address gethcommon.Address) (*gethcommon.Hash, error) } type AttestationStorage interface { @@ -151,6 +149,11 @@ type Storage interface { // StateDB - return the underlying state database StateDB() state.Database + + ReadEOA(ctx context.Context, addr gethcommon.Address) (*uint64, error) + + ReadContractAddress(ctx context.Context, addr gethcommon.Address) (*uint64, error) + ReadContractOwner(ctx context.Context, address gethcommon.Address) (*gethcommon.Address, error) } type ScanStorage interface { diff --git a/go/enclave/storage/storage.go b/go/enclave/storage/storage.go index c804424271..662eeb08ea 100644 --- a/go/enclave/storage/storage.go +++ b/go/enclave/storage/storage.go @@ -10,6 +10,8 @@ import ( "math/big" "time" + "github.com/ten-protocol/go-ten/go/common/errutil" + "github.com/ethereum/go-ethereum/core/rawdb" "github.com/ethereum/go-ethereum/triedb/hashdb" @@ -47,6 +49,12 @@ const ( masterSeedCfg = "MASTER_SEED" ) +type eventType struct { + id uint64 + isLifecycle bool +} + +// todo - this file needs splitting up based on concerns type storageImpl struct { db enclavedb.EnclaveDB @@ -55,7 +63,7 @@ type storageImpl struct { blockCache *cache.Cache[*types.Block] // stores batches using the sequence number as key - batchCacheBySeqNo *cache.Cache[*core.Batch] + batchCacheBySeqNo *cache.Cache[*common.BatchHeader] // mapping between the hash and the sequence number // note: to fetch a batch by hash will require 2 cache hits @@ -65,6 +73,16 @@ type storageImpl struct { // note: to fetch a batch by height will require 2 cache hits seqCacheByHeight *cache.Cache[*big.Int] + // batch hash - geth converted hash + convertedHashCache *cache.Cache[*gethcommon.Hash] + + // from address ( either eoa or contract) to the id of the db entry + eoaCache *cache.Cache[*uint64] + contractAddressCache *cache.Cache[*uint64] + + // from contract_address||event_sig to the event_type (id, isLifecycle) object + eventTypeCache *cache.Cache[*eventType] + cachedSharedSecret *crypto.SharedEnclaveSecret stateCache state.Database @@ -114,14 +132,18 @@ func NewStorage(backingDB enclavedb.EnclaveDB, chainConfig *params.ChainConfig, } ristrettoStore := ristretto_store.NewRistretto(ristrettoCache) return &storageImpl{ - db: backingDB, - stateCache: stateDB, - chainConfig: chainConfig, - blockCache: cache.New[*types.Block](ristrettoStore), - batchCacheBySeqNo: cache.New[*core.Batch](ristrettoStore), - seqCacheByHash: cache.New[*big.Int](ristrettoStore), - seqCacheByHeight: cache.New[*big.Int](ristrettoStore), - logger: logger, + db: backingDB, + stateCache: stateDB, + chainConfig: chainConfig, + blockCache: cache.New[*types.Block](ristrettoStore), + batchCacheBySeqNo: cache.New[*common.BatchHeader](ristrettoStore), + seqCacheByHash: cache.New[*big.Int](ristrettoStore), + seqCacheByHeight: cache.New[*big.Int](ristrettoStore), + convertedHashCache: cache.New[*gethcommon.Hash](ristrettoStore), + eoaCache: cache.New[*uint64](ristrettoStore), + contractAddressCache: cache.New[*uint64](ristrettoStore), + eventTypeCache: cache.New[*eventType](ristrettoStore), + logger: logger, } } @@ -137,9 +159,13 @@ func (s *storageImpl) Close() error { return s.db.GetSQLDB().Close() } -func (s *storageImpl) FetchHeadBatch(ctx context.Context) (*core.Batch, error) { - defer s.logDuration("FetchHeadBatch", measure.NewStopwatch()) - return enclavedb.ReadCurrentHeadBatch(ctx, s.db.GetSQLDB()) +func (s *storageImpl) FetchHeadBatchHeader(ctx context.Context) (*common.BatchHeader, error) { + defer s.logDuration("FetchHeadBatchHeader", measure.NewStopwatch()) + b, err := enclavedb.ReadCurrentHeadBatchHeader(ctx, s.db.GetSQLDB()) + if err != nil { + return nil, err + } + return b, nil } func (s *storageImpl) FetchCurrentSequencerNo(ctx context.Context) (*big.Int, error) { @@ -149,46 +175,72 @@ func (s *storageImpl) FetchCurrentSequencerNo(ctx context.Context) (*big.Int, er func (s *storageImpl) FetchBatch(ctx context.Context, hash common.L2BatchHash) (*core.Batch, error) { defer s.logDuration("FetchBatch", measure.NewStopwatch()) + seqNo, err := s.fetchSeqNoByHash(ctx, hash) + if err != nil { + return nil, err + } + return s.FetchBatchBySeqNo(ctx, seqNo.Uint64()) +} + +func (s *storageImpl) fetchSeqNoByHash(ctx context.Context, hash common.L2BatchHash) (*big.Int, error) { seqNo, err := common.GetCachedValue(ctx, s.seqCacheByHash, s.logger, hash, func(v any) (*big.Int, error) { - batch, err := enclavedb.ReadBatchByHash(ctx, s.db.GetSQLDB(), v.(common.L2BatchHash)) + batch, err := enclavedb.ReadBatchHeaderByHash(ctx, s.db.GetSQLDB(), v.(common.L2BatchHash)) if err != nil { return nil, err } - return batch.SeqNo(), nil + return batch.SequencerOrderNo, nil }) - if err != nil { - return nil, err - } - return s.FetchBatchBySeqNo(ctx, seqNo.Uint64()) + return seqNo, err } func (s *storageImpl) FetchConvertedHash(ctx context.Context, hash common.L2BatchHash) (gethcommon.Hash, error) { defer s.logDuration("FetchConvertedHash", measure.NewStopwatch()) - batch, err := s.FetchBatch(ctx, hash) + batch, err := s.FetchBatchHeader(ctx, hash) + if err != nil { + return gethcommon.Hash{}, err + } + + convertedHash, err := common.GetCachedValue(ctx, s.convertedHashCache, s.logger, hash, func(v any) (*gethcommon.Hash, error) { + ch, err := enclavedb.FetchConvertedBatchHash(ctx, s.db.GetSQLDB(), batch.SequencerOrderNo.Uint64()) + if err != nil { + return nil, err + } + return &ch, nil + }) if err != nil { return gethcommon.Hash{}, err } - return enclavedb.FetchConvertedBatchHash(ctx, s.db.GetSQLDB(), batch.Header.SequencerOrderNo.Uint64()) + return *convertedHash, nil } func (s *storageImpl) FetchBatchHeader(ctx context.Context, hash common.L2BatchHash) (*common.BatchHeader, error) { defer s.logDuration("FetchBatchHeader", measure.NewStopwatch()) - b, err := s.FetchBatch(ctx, hash) + seqNo, err := s.fetchSeqNoByHash(ctx, hash) + if err != nil { + return nil, err + } + + return s.FetchBatchHeaderBySeqNo(ctx, seqNo.Uint64()) +} + +func (s *storageImpl) FetchBatchTransactionsBySeq(ctx context.Context, seqNo uint64) ([]*common.L2Tx, error) { + defer s.logDuration("FetchBatchTransactionsBySeq", measure.NewStopwatch()) + batch, err := s.FetchBatchHeaderBySeqNo(ctx, seqNo) if err != nil { return nil, err } - return b.Header, nil + return enclavedb.ReadBatchTransactions(ctx, s.db.GetSQLDB(), batch.Number.Uint64()) } func (s *storageImpl) FetchBatchByHeight(ctx context.Context, height uint64) (*core.Batch, error) { defer s.logDuration("FetchBatchByHeight", measure.NewStopwatch()) // the key is (height+1), because for some reason it doesn't like a key of 0 seqNo, err := common.GetCachedValue(ctx, s.seqCacheByHeight, s.logger, height+1, func(h any) (*big.Int, error) { - batch, err := enclavedb.ReadCanonicalBatchByHeight(ctx, s.db.GetSQLDB(), height) + batch, err := enclavedb.ReadCanonicalBatchHeaderByHeight(ctx, s.db.GetSQLDB(), height) if err != nil { return nil, err } - return batch.SeqNo(), nil + return batch.SequencerOrderNo, nil }) if err != nil { return nil, err @@ -196,12 +248,12 @@ func (s *storageImpl) FetchBatchByHeight(ctx context.Context, height uint64) (*c return s.FetchBatchBySeqNo(ctx, seqNo.Uint64()) } -func (s *storageImpl) FetchNonCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*core.Batch, error) { +func (s *storageImpl) FetchNonCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*common.BatchHeader, error) { defer s.logDuration("FetchNonCanonicalBatchesBetween", measure.NewStopwatch()) return enclavedb.ReadNonCanonicalBatches(ctx, s.db.GetSQLDB(), startSeq, endSeq) } -func (s *storageImpl) FetchCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*core.Batch, error) { +func (s *storageImpl) FetchCanonicalBatchesBetween(ctx context.Context, startSeq uint64, endSeq uint64) ([]*common.BatchHeader, error) { defer s.logDuration("FetchCanonicalBatchesBetween", measure.NewStopwatch()) return enclavedb.ReadCanonicalBatches(ctx, s.db.GetSQLDB(), startSeq, endSeq) } @@ -240,11 +292,19 @@ func (s *storageImpl) StoreBlock(ctx context.Context, block *types.Block, chainF if chainFork != nil && chainFork.IsFork() { s.logger.Info(fmt.Sprintf("Update Fork. %s", chainFork)) - err := enclavedb.UpdateCanonicalValue(ctx, dbTx, false, chainFork.NonCanonicalPath, s.logger) + err := enclavedb.UpdateCanonicalBlock(ctx, dbTx, false, chainFork.NonCanonicalPath) if err != nil { return err } - err = enclavedb.UpdateCanonicalValue(ctx, dbTx, true, chainFork.CanonicalPath, s.logger) + err = enclavedb.UpdateCanonicalBlock(ctx, dbTx, true, chainFork.CanonicalPath) + if err != nil { + return err + } + err = enclavedb.UpdateCanonicalBatch(ctx, dbTx, false, chainFork.NonCanonicalPath) + if err != nil { + return err + } + err = enclavedb.UpdateCanonicalBatch(ctx, dbTx, true, chainFork.CanonicalPath) if err != nil { return err } @@ -384,14 +444,14 @@ func (s *storageImpl) HealthCheck(ctx context.Context) (bool, error) { func (s *storageImpl) CreateStateDB(ctx context.Context, batchHash common.L2BatchHash) (*state.StateDB, error) { defer s.logDuration("CreateStateDB", measure.NewStopwatch()) - batch, err := s.FetchBatch(ctx, batchHash) + batch, err := s.FetchBatchHeader(ctx, batchHash) if err != nil { return nil, err } - statedb, err := state.New(batch.Header.Root, s.stateCache, nil) + statedb, err := state.New(batch.Root, s.stateCache, nil) if err != nil { - return nil, fmt.Errorf("could not create state DB for %s. Cause: %w", batch.Header.Root, err) + return nil, fmt.Errorf("could not create state DB for batch: %d. Cause: %w", batch.SequencerOrderNo, err) } return statedb, nil } @@ -405,22 +465,11 @@ func (s *storageImpl) EmptyStateDB() (*state.StateDB, error) { return statedb, nil } -// GetReceiptsByBatchHash retrieves the receipts for all transactions in a given batch. -func (s *storageImpl) GetReceiptsByBatchHash(ctx context.Context, hash gethcommon.Hash) (types.Receipts, error) { - defer s.logDuration("GetReceiptsByBatchHash", measure.NewStopwatch()) - return enclavedb.ReadReceiptsByBatchHash(ctx, s.db.GetSQLDB(), hash, s.chainConfig) -} - func (s *storageImpl) GetTransaction(ctx context.Context, txHash gethcommon.Hash) (*types.Transaction, common.L2BatchHash, uint64, uint64, error) { defer s.logDuration("GetTransaction", measure.NewStopwatch()) return enclavedb.ReadTransaction(ctx, s.db.GetSQLDB(), txHash) } -func (s *storageImpl) GetContractCreationTx(ctx context.Context, address gethcommon.Address) (*gethcommon.Hash, error) { - defer s.logDuration("GetContractCreationTx", measure.NewStopwatch()) - return enclavedb.GetContractCreationTx(ctx, s.db.GetSQLDB(), address) -} - func (s *storageImpl) GetTransactionReceipt(ctx context.Context, txHash gethcommon.Hash) (*types.Receipt, error) { defer s.logDuration("GetTransactionReceipt", measure.NewStopwatch()) return enclavedb.ReadReceipt(ctx, s.db.GetSQLDB(), txHash, s.chainConfig) @@ -461,16 +510,30 @@ func (s *storageImpl) StoreAttestedKey(ctx context.Context, aggregator gethcommo func (s *storageImpl) FetchBatchBySeqNo(ctx context.Context, seqNum uint64) (*core.Batch, error) { defer s.logDuration("FetchBatchBySeqNo", measure.NewStopwatch()) - b, err := common.GetCachedValue(ctx, s.batchCacheBySeqNo, s.logger, seqNum, func(seq any) (*core.Batch, error) { - return enclavedb.ReadBatchBySeqNo(ctx, s.db.GetSQLDB(), seqNum) + h, err := common.GetCachedValue(ctx, s.batchCacheBySeqNo, s.logger, seqNum, func(seq any) (*common.BatchHeader, error) { + return enclavedb.ReadBatchHeaderBySeqNo(ctx, s.db.GetSQLDB(), seqNum) }) - if err == nil && b == nil { - return nil, fmt.Errorf("not found") + if err != nil { + return nil, err + } + txs, err := s.FetchBatchTransactionsBySeq(ctx, seqNum) + if err != nil { + return nil, err } - return b, err + return &core.Batch{ + Header: h, + Transactions: txs, + }, err +} + +func (s *storageImpl) FetchBatchHeaderBySeqNo(ctx context.Context, seqNum uint64) (*common.BatchHeader, error) { + defer s.logDuration("FetchBatchHeaderBySeqNo", measure.NewStopwatch()) + return common.GetCachedValue(ctx, s.batchCacheBySeqNo, s.logger, seqNum, func(seq any) (*common.BatchHeader, error) { + return enclavedb.ReadBatchHeaderBySeqNo(ctx, s.db.GetSQLDB(), seqNum) + }) } -func (s *storageImpl) FetchBatchesByBlock(ctx context.Context, block common.L1BlockHash) ([]*core.Batch, error) { +func (s *storageImpl) FetchBatchesByBlock(ctx context.Context, block common.L1BlockHash) ([]*common.BatchHeader, error) { defer s.logDuration("FetchBatchesByBlock", measure.NewStopwatch()) return enclavedb.ReadBatchesByBlock(ctx, s.db.GetSQLDB(), block) } @@ -503,15 +566,48 @@ func (s *storageImpl) StoreBatch(ctx context.Context, batch *core.Batch, convert } s.logger.Trace("write batch", log.BatchHashKey, batch.Hash(), "l1Proof", batch.Header.L1Proof, log.BatchSeqNoKey, batch.SeqNo(), "block_id", blockId) - if err := enclavedb.WriteBatchAndTransactions(ctx, dbTx, batch, convertedHash, blockId); err != nil { - return fmt.Errorf("could not write batch. Cause: %w", err) + // the batch is canonical only if the l1 proof is canonical + isL1ProofCanonical, err := enclavedb.IsCanonicalBlock(ctx, dbTx, &batch.Header.L1Proof) + if err != nil { + return err + } + + // sanity check: a batch can't be canonical if its parent is not + parentIsCanon, err := enclavedb.IsCanonicalBatchHash(ctx, dbTx, &batch.Header.ParentHash) + if err != nil { + return err + } + parentIsCanon = parentIsCanon || batch.SeqNo().Uint64() <= common.L2GenesisSeqNo+2 + if isL1ProofCanonical && !parentIsCanon { + s.logger.Crit("invalid chaining. Batch is canonical. Parent is not", log.BatchHashKey, batch.Hash(), "parentHash", batch.Header.ParentHash) + } + + existsHeight, err := enclavedb.ExistsBatchAtHeight(ctx, dbTx, batch.Header.Number) + if err != nil { + return fmt.Errorf("could not read ExistsBatchAtHeight. Cause: %w", err) + } + + if err := enclavedb.WriteBatchHeader(ctx, dbTx, batch, convertedHash, blockId, isL1ProofCanonical); err != nil { + return fmt.Errorf("could not write batch header. Cause: %w", err) + } + + // only insert transactions if this is the first time a batch of this height is created + if !existsHeight { + senders, err := s.handleTxSenders(ctx, batch, dbTx) + if err != nil { + return err + } + + if err := enclavedb.WriteTransactions(ctx, dbTx, batch, senders); err != nil { + return fmt.Errorf("could not write transactions. Cause: %w", err) + } } if err := dbTx.Commit(); err != nil { return fmt.Errorf("could not commit batch %w", err) } - common.CacheValue(ctx, s.batchCacheBySeqNo, s.logger, batch.SeqNo().Uint64(), batch) + common.CacheValue(ctx, s.batchCacheBySeqNo, s.logger, batch.SeqNo().Uint64(), batch.Header) common.CacheValue(ctx, s.seqCacheByHash, s.logger, batch.Hash(), batch.SeqNo()) // note: the key is (height+1), because for some reason it doesn't like a key of 0 // should always contain the canonical batch because the cache is overwritten by each new batch after a reorg @@ -519,7 +615,24 @@ func (s *storageImpl) StoreBatch(ctx context.Context, batch *core.Batch, convert return nil } -func (s *storageImpl) StoreExecutedBatch(ctx context.Context, batch *core.Batch, receipts []*types.Receipt) error { +func (s *storageImpl) handleTxSenders(ctx context.Context, batch *core.Batch, dbTx *sql.Tx) ([]*uint64, error) { + senders := make([]*uint64, len(batch.Transactions)) + // insert the tx signers as externally owned accounts + for i, tx := range batch.Transactions { + sender, err := types.Sender(types.LatestSignerForChainID(tx.ChainId()), tx) + if err != nil { + return nil, fmt.Errorf("could not read tx sender. Cause: %w", err) + } + eoaID, err := s.readOrWriteEOA(ctx, dbTx, sender) + if err != nil { + return nil, fmt.Errorf("could not insert EOA. cause: %w", err) + } + senders[i] = eoaID + } + return senders, nil +} + +func (s *storageImpl) StoreExecutedBatch(ctx context.Context, batch *common.BatchHeader, receipts []*types.Receipt, newContracts map[gethcommon.Hash][]*gethcommon.Address) error { defer s.logDuration("StoreExecutedBatch", measure.NewStopwatch()) executed, err := enclavedb.BatchWasExecuted(ctx, s.db.GetSQLDB(), batch.Hash()) if err != nil { @@ -530,35 +643,212 @@ func (s *storageImpl) StoreExecutedBatch(ctx context.Context, batch *core.Batch, return nil } + s.logger.Trace("storing executed batch", log.BatchHashKey, batch.Hash(), log.BatchSeqNoKey, batch.SequencerOrderNo, "receipts", len(receipts)) + dbTx, err := s.db.NewDBTransaction(ctx) if err != nil { return fmt.Errorf("could not create DB transaction - %w", err) } defer dbTx.Rollback() - if err := enclavedb.WriteBatchExecution(ctx, dbTx, batch.SeqNo(), receipts); err != nil { - return fmt.Errorf("could not write transaction receipts. Cause: %w", err) + + if err := enclavedb.MarkBatchExecuted(ctx, dbTx, batch.SequencerOrderNo); err != nil { + return fmt.Errorf("could not set the executed flag. Cause: %w", err) } - s.logger.Trace("store executed batch", log.BatchHashKey, batch.Hash(), log.BatchSeqNoKey, batch.SeqNo(), "receipts", len(receipts)) - if batch.Number().Uint64() > common.L2GenesisSeqNo { - stateDB, err := s.CreateStateDB(ctx, batch.Header.ParentHash) + + for _, receipt := range receipts { + err = s.storeReceiptAndEventLogs(ctx, dbTx, batch, receipt, newContracts[receipt.TxHash]) if err != nil { - return fmt.Errorf("could not create state DB to filter logs. Cause: %w", err) + return fmt.Errorf("could not store receipt. Cause: %w", err) } + } + if err = dbTx.Commit(); err != nil { + return fmt.Errorf("could not commit batch %w", err) + } + + return nil +} - err = enclavedb.StoreEventLogs(ctx, dbTx, receipts, batch, stateDB) +// todo - move this to a separate service +func (s *storageImpl) storeReceiptAndEventLogs(ctx context.Context, dbTX *sql.Tx, batch *common.BatchHeader, receipt *types.Receipt, createdContracts []*gethcommon.Address) error { + txId, senderId, err := enclavedb.ReadTransactionIdAndSender(ctx, dbTX, receipt.TxHash) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + return fmt.Errorf("could not get transaction id. Cause: %w", err) + } + + for _, createdContract := range createdContracts { + _, err = enclavedb.WriteContractAddress(ctx, dbTX, createdContract, *senderId) if err != nil { - return fmt.Errorf("could not save logs %w", err) + return fmt.Errorf("could not write contract address. cause %w", err) } } - if err = dbTx.Commit(); err != nil { - return fmt.Errorf("could not commit batch %w", err) + // Convert the receipt into its storage form and serialize + // this removes information that can be recreated + // todo - in a future iteration, this can be slimmed down further because we already store the logs separately + storageReceipt := (*types.ReceiptForStorage)(receipt) + receiptBytes, err := rlp.EncodeToBytes(storageReceipt) + if err != nil { + return fmt.Errorf("failed to encode block receipts. Cause: %w", err) } + execTxId, err := enclavedb.WriteReceipt(ctx, dbTX, batch.SequencerOrderNo.Uint64(), txId, receiptBytes) + if err != nil { + return fmt.Errorf("could not write receipt. Cause: %w", err) + } + + for _, l := range receipt.Logs { + err := s.storeEventLog(ctx, dbTX, execTxId, l) + if err != nil { + return fmt.Errorf("could not store log entry %v. Cause: %w", l, err) + } + } return nil } +func (s *storageImpl) storeEventLog(ctx context.Context, dbTX *sql.Tx, execTxId uint64, l *types.Log) error { + topicIds, isLifecycle, err := s.handleUserTopics(ctx, dbTX, l) + if err != nil { + return err + } + + eventTypeId, err := s.handleEventType(ctx, dbTX, l, isLifecycle) + if err != nil { + return err + } + + // normalize data + data := l.Data + if len(data) == 0 { + data = nil + } + err = enclavedb.WriteEventLog(ctx, dbTX, eventTypeId, topicIds, data, l.Index, execTxId) + if err != nil { + return fmt.Errorf("could not write event log. Cause: %w", err) + } + + return nil +} + +func (s *storageImpl) handleEventType(ctx context.Context, dbTX *sql.Tx, l *types.Log, isLifecycle bool) (uint64, error) { + et, err := s.readEventType(ctx, dbTX, l.Address, l.Topics[0]) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + return 0, fmt.Errorf("could not read event type. Cause: %w", err) + } + if err == nil { + // in case we determined the current emitted event is not lifecycle, we must update the eventType + if !isLifecycle && et.isLifecycle { + err := enclavedb.UpdateEventTopicLifecycle(ctx, dbTX, et.id, isLifecycle) + if err != nil { + return 0, fmt.Errorf("could not update the event type. cause: %w", err) + } + } + return et.id, nil + } + + // the first time an event of this type is emitted we must store it + contractAddId, err := s.readContractAddress(ctx, dbTX, l.Address) + if err != nil { + // the contract was already stored when it was created + return 0, fmt.Errorf("could not read contract address. %s. Cause: %w", l.Address, err) + } + return enclavedb.WriteEventType(ctx, dbTX, contractAddId, l.Topics[0], isLifecycle) +} + +func (s *storageImpl) handleUserTopics(ctx context.Context, dbTX *sql.Tx, l *types.Log) ([]*uint64, bool, error) { + topicIds := make([]*uint64, 3) + // iterate the topics containing user values + // reuse them if already inserted + // if not, discover if there is a relevant externally owned address + isLifecycle := true + for i := 1; i < len(l.Topics); i++ { + topic := l.Topics[i] + // first check if there is an entry already for this topic + eventTopicId, relAddressId, err := s.findEventTopic(ctx, dbTX, topic.Bytes()) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + return nil, false, fmt.Errorf("could not read the event topic. Cause: %w", err) + } + if errors.Is(err, errutil.ErrNotFound) { + // check whether the topic is an EOA + relAddressId, err = s.findRelevantAddress(ctx, dbTX, topic) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + return nil, false, fmt.Errorf("could not read relevant address. Cause %w", err) + } + eventTopicId, err = enclavedb.WriteEventTopic(ctx, dbTX, &topic, relAddressId) + if err != nil { + return nil, false, fmt.Errorf("could not write event topic. Cause: %w", err) + } + } + + if relAddressId != nil { + isLifecycle = false + } + topicIds[i-1] = &eventTopicId + } + return topicIds, isLifecycle, nil +} + +// Of the log's topics, returns those that are (potentially) user addresses. A topic is considered a user address if: +// - It has at least 12 leading zero bytes (since addresses are 20 bytes long, while hashes are 32) and at most 22 leading zero bytes +// - It is not a smart contract address +func (s *storageImpl) findRelevantAddress(ctx context.Context, dbTX *sql.Tx, topic gethcommon.Hash) (*uint64, error) { + potentialAddr := common.ExtractPotentialAddress(topic) + if potentialAddr == nil { + return nil, errutil.ErrNotFound + } + + // first check whether there is already an entry in the EOA table + eoaID, err := s.readEOA(ctx, dbTX, *potentialAddr) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + return nil, err + } + if err == nil { + return eoaID, nil + } + + // if the address is a contract then it's clearly not an EOA + _, err = s.readContractAddress(ctx, dbTX, *potentialAddr) + if err != nil && !errors.Is(err, errutil.ErrNotFound) { + return nil, err + } + if err == nil { + return nil, errutil.ErrNotFound + } + + // when we reach this point, the value looks like an address, but we haven't yet seen it + // for the first iteration, we'll just assume it's an EOA + // we can make this smarter by passing in more information about the event + id, err := enclavedb.WriteEoa(ctx, dbTX, *potentialAddr) + if err != nil { + return nil, err + } + + return &id, nil +} + +func (s *storageImpl) readEventType(ctx context.Context, dbTX *sql.Tx, contractAddress gethcommon.Address, eventSignature gethcommon.Hash) (*eventType, error) { + defer s.logDuration("readEventType", measure.NewStopwatch()) + + key := make([]byte, 0) + key = append(key, contractAddress.Bytes()...) + key = append(key, eventSignature.Bytes()...) + return common.GetCachedValue(ctx, s.eventTypeCache, s.logger, key, func(v any) (*eventType, error) { + contractAddrId, err := enclavedb.ReadContractAddress(ctx, dbTX, contractAddress) + if err != nil { + return nil, err + } + id, isLifecycle, err := enclavedb.ReadEventType(ctx, dbTX, *contractAddrId, eventSignature) + if err != nil { + return nil, err + } + return &eventType{ + id: id, + isLifecycle: isLifecycle, + }, nil + }) +} + func (s *storageImpl) StoreValueTransfers(ctx context.Context, blockHash common.L1BlockHash, transfers common.ValueTransferEvents) error { + defer s.logDuration("StoreValueTransfers", measure.NewStopwatch()) dbtx, err := s.db.NewDBTransaction(ctx) if err != nil { return fmt.Errorf("could not create DB transaction - %w", err) @@ -599,6 +889,7 @@ func (s *storageImpl) GetL1Messages(ctx context.Context, blockHash common.L1Bloc } func (s *storageImpl) GetL1Transfers(ctx context.Context, blockHash common.L1BlockHash) (common.ValueTransferEvents, error) { + defer s.logDuration("GetL1Transfers", measure.NewStopwatch()) return enclavedb.FetchL1Messages[common.ValueTransferEvent](ctx, s.db.GetSQLDB(), blockHash, true) } @@ -665,10 +956,12 @@ func (s *storageImpl) StoreRollup(ctx context.Context, rollup *common.ExtRollup, } func (s *storageImpl) FetchReorgedRollup(ctx context.Context, reorgedBlocks []common.L1BlockHash) (*common.L2BatchHash, error) { + defer s.logDuration("FetchReorgedRollup", measure.NewStopwatch()) return enclavedb.FetchReorgedRollup(ctx, s.db.GetSQLDB(), reorgedBlocks) } func (s *storageImpl) FetchRollupMetadata(ctx context.Context, hash common.L2RollupHash) (*common.PublicRollupMetadata, error) { + defer s.logDuration("FetchRollupMetadata", measure.NewStopwatch()) return enclavedb.FetchRollupMetadata(ctx, s.db.GetSQLDB(), hash) } @@ -694,7 +987,7 @@ func (s *storageImpl) GetContractCount(ctx context.Context) (*big.Int, error) { return enclavedb.ReadContractCreationCount(ctx, s.db.GetSQLDB()) } -func (s *storageImpl) FetchCanonicalUnexecutedBatches(ctx context.Context, from *big.Int) ([]*core.Batch, error) { +func (s *storageImpl) FetchCanonicalUnexecutedBatches(ctx context.Context, from *big.Int) ([]*common.BatchHeader, error) { defer s.logDuration("FetchCanonicalUnexecutedBatches", measure.NewStopwatch()) return enclavedb.ReadUnexecutedBatches(ctx, s.db.GetSQLDB(), from) } @@ -714,6 +1007,69 @@ func (s *storageImpl) CountTransactionsPerAddress(ctx context.Context, address * return enclavedb.CountTransactionsPerAddress(ctx, s.db.GetSQLDB(), address) } +func (s *storageImpl) ReadEOA(ctx context.Context, addr gethcommon.Address) (*uint64, error) { + dbtx, err := s.db.NewDBTransaction(ctx) + if err != nil { + return nil, err + } + defer dbtx.Rollback() + return s.readEOA(ctx, dbtx, addr) +} + +func (s *storageImpl) readEOA(ctx context.Context, dbTX *sql.Tx, addr gethcommon.Address) (*uint64, error) { + defer s.logDuration("readEOA", measure.NewStopwatch()) + return common.GetCachedValue(ctx, s.eoaCache, s.logger, addr, func(v any) (*uint64, error) { + id, err := enclavedb.ReadEoa(ctx, dbTX, addr) + if err != nil { + return nil, err + } + return &id, nil + }) +} + +func (s *storageImpl) readOrWriteEOA(ctx context.Context, dbTX *sql.Tx, addr gethcommon.Address) (*uint64, error) { + defer s.logDuration("readOrWriteEOA", measure.NewStopwatch()) + return common.GetCachedValue(ctx, s.eoaCache, s.logger, addr, func(v any) (*uint64, error) { + id, err := enclavedb.ReadEoa(ctx, dbTX, addr) + if err != nil { + if errors.Is(err, errutil.ErrNotFound) { + wid, err := enclavedb.WriteEoa(ctx, dbTX, addr) + if err != nil { + return nil, fmt.Errorf("could not write the eoa. Cause: %w", err) + } + return &wid, nil + } + return nil, fmt.Errorf("count not read eoa. cause: %w", err) + } + return &id, nil + }) +} + +func (s *storageImpl) ReadContractAddress(ctx context.Context, addr gethcommon.Address) (*uint64, error) { + dbtx, err := s.db.NewDBTransaction(ctx) + if err != nil { + return nil, err + } + defer dbtx.Commit() + return s.readContractAddress(ctx, dbtx, addr) +} + +func (s *storageImpl) ReadContractOwner(ctx context.Context, address gethcommon.Address) (*gethcommon.Address, error) { + return enclavedb.ReadContractOwner(ctx, s.db.GetSQLDB(), address) +} + +func (s *storageImpl) readContractAddress(ctx context.Context, dbTX *sql.Tx, addr gethcommon.Address) (*uint64, error) { + defer s.logDuration("readContractAddress", measure.NewStopwatch()) + return common.GetCachedValue(ctx, s.contractAddressCache, s.logger, addr, func(v any) (*uint64, error) { + return enclavedb.ReadContractAddress(ctx, dbTX, addr) + }) +} + +func (s *storageImpl) findEventTopic(ctx context.Context, dbTX *sql.Tx, topic []byte) (uint64, *uint64, error) { + defer s.logDuration("findEventTopic", measure.NewStopwatch()) + return enclavedb.ReadEventTopic(ctx, dbTX, topic) +} + func (s *storageImpl) logDuration(method string, stopWatch *measure.Stopwatch) { core.LogMethodDuration(s.logger, stopWatch, fmt.Sprintf("Storage::%s completed", method)) } diff --git a/go/wallet/wallet.go b/go/wallet/wallet.go index 01922ca91b..6c6209cd29 100644 --- a/go/wallet/wallet.go +++ b/go/wallet/wallet.go @@ -69,7 +69,7 @@ func NewInMemoryWalletFromConfig(pkStr string, l1ChainID int64, logger gethlog.L // SignTransaction returns a signed transaction func (m *inMemoryWallet) SignTransaction(tx types.TxData) (*types.Transaction, error) { - return types.SignNewTx(m.prvKey, types.NewLondonSigner(m.chainID), tx) + return types.SignNewTx(m.prvKey, types.NewCancunSigner(m.chainID), tx) } func (m *inMemoryWallet) SignTransactionForChainID(tx types.TxData, chainID *big.Int) (*types.Transaction, error) { diff --git a/integration/common/testlog/testlog.go b/integration/common/testlog/testlog.go index 3387f65d16..9d12e2ab36 100644 --- a/integration/common/testlog/testlog.go +++ b/integration/common/testlog/testlog.go @@ -6,10 +6,10 @@ import ( "os" "time" - "github.com/ten-protocol/go-ten/lib/gethfork/debug" - "github.com/ten-protocol/go-ten/go/common/log" + "github.com/ten-protocol/go-ten/lib/gethfork/debug" + gethlog "github.com/ethereum/go-ethereum/log" ) diff --git a/integration/networktest/tests/helpful/accs_and_contracts_test.go b/integration/networktest/tests/helpful/accs_and_contracts_test.go index e96271ee05..502f84e381 100644 --- a/integration/networktest/tests/helpful/accs_and_contracts_test.go +++ b/integration/networktest/tests/helpful/accs_and_contracts_test.go @@ -102,7 +102,6 @@ func TestTransferL1Funds(t *testing.T) { } return nil }, retry.NewTimeoutStrategy(70*time.Second, 20*time.Second)) - if err != nil { panic(err) } diff --git a/integration/tenscan/tenscan_test.go b/integration/tenscan/tenscan_test.go index 3a75a19522..9c0ce273c0 100644 --- a/integration/tenscan/tenscan_test.go +++ b/integration/tenscan/tenscan_test.go @@ -82,7 +82,7 @@ func TestTenscan(t *testing.T) { statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/count/contracts/", serverAddress)) assert.NoError(t, err) assert.Equal(t, 200, statusCode) - assert.Equal(t, "{\"count\":2}", string(body)) + assert.Equal(t, "{\"count\":1}", string(body)) statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/count/transactions/", serverAddress)) assert.NoError(t, err) From ddff74a5beeb0c58738aac85e007a0899cdd85b5 Mon Sep 17 00:00:00 2001 From: Tudor Malene Date: Tue, 25 Jun 2024 11:43:13 +0100 Subject: [PATCH 7/9] Update db schema (#1967) * update db schema * update db schema * update db schema --- design/architecture/db_schema.png | Bin 182127 -> 366126 bytes design/architecture/db_schema.puml | 251 +++++++++++------------------ 2 files changed, 94 insertions(+), 157 deletions(-) diff --git a/design/architecture/db_schema.png b/design/architecture/db_schema.png index d0e162451e219b1410bf6ca74cda8d9bfbdb2c35..9f536392951db67f80a3176daede7339743f01ea 100644 GIT binary patch literal 366126 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ⅈUCQa=unh@1L`0ONjZzY^HSKn$UdQ1$T*Sc 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 z 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

!0h!i<(|R8IAMerL1VyRJ&n1E_Q9%$ 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 D*GAF) diff --git a/design/architecture/db_schema.puml b/design/architecture/db_schema.puml index 9266d65f93..86f20a273f 100644 --- a/design/architecture/db_schema.puml +++ b/design/architecture/db_schema.puml @@ -1,175 +1,112 @@ @startuml -' avoid problems with angled crows feet -skinparam linetype ortho - -package "Batch Execution" as BE #LightYellow{ - -note as N0 - This section is populated - when a batch is processed. -end note - -note as N1 - There can be multiple - sibling batches, but - they will always - share a body. -end note -note as N2 - The same transaction can be part - of multiple reorged sibling batches, - and generate different receipts and events. -end note - -note as N3 - Transactions can be bound - to a batch body only. -end note +!theme plain +top to bottom direction +skinparam linetype ortho +class attestation_key { + party: binary(20) + ky: binary(33) } - -package "Block Submission" as BS #LightBlue{ -note as N4 - This section is populated - when an L1 block is processed. - The logic will store the rollups - and the cross chain messages. - It will also mark "is_canonical" - when there are reorgs. -end note - -note as N6 -Add constraint on -block(is_canonical, height) -end note - +class batch { + converted_hash: binary(32) + hash: binary(32) + height: int + is_canonical: boolean + header: blob + l1_proof_hash: binary(32) + l1_proof: integer + is_executed: boolean + sequence: int } - -package "Config" as C #LightGreen{ -note as N5 - This table contains general - information like the shared secret, - the attestation, etc. -end note - +class block { + hash: binary(32) + is_canonical: boolean + header: blob + height: int + id: integer } - -package "Key Value" as KV { -note as N7 -This is where the stateDB lives. -Maybe some stuff needed by the embedded geth. -end note +class config { + val: mediumblob + ky: varchar(64) } - -entity "Batch" as BE.batch { - *batchHash : binary(32) - -- - sequence : int - height : int - is_canonical : boolean - source : P2P/ROLLUP - header : string - *l1Proof : binary(32) <> - *bodyHash : binary(32) <> - *parentHash : binary(32) <> +class contract { + address: binary(20) + owner: int + id: integer } - -entity "Batch Body" as BE.batch_body { - *bodyHash : binary(32) - -- - content : mediumblob +class event_log { + event_type: integer + topic1: integer + topic2: integer + topic3: integer + datablob: mediumblob + log_idx: integer + receipt: integer + id: integer } - -entity "Transaction" as BE.tx { - *txHash : binary(32) - -- - content : binary - senderAddress : binary(20) - nonce : int - idx : int - *bodyHash : binary(32) <> +class event_topic { + topic: binary(32) + rel_address: integer + id: integer } - -entity "Executed Transaction" as BE.exec_tx { - *execTxId : number <> - -- - createdContractAddress : binary(32) - receipt : mediumblob - *txHash : binary(32) <> - *batchHash : binary(32) <> +class event_type { + contract: integer + event_sig: binary(32) + lifecycle_event: boolean + id: integer } - -entity "Event" as BE.event { - -- - topic0 : binary(32) - topic1 : binary(32) - topic2 : binary(32) - topic3 : binary(32) - topic4 : binary(32) - datablob : mediumblob - logIdx : int - address : binary(32) - lifecycleEvent : boolean - relAddress1 : binary(20) - relAddress2 : binary(20) - relAddress3 : binary(20) - relAddress4 : binary(20) - *execTxId : number <> +class externally_owned_account { + address: binary(20) + id: integer } - -entity "Block" as BS.block { - *blockHash : binary(32) - -- - *parentHash : binary(32) <> - is_canonical : boolean - height : int - header : string +class keyvalue { + ky: varbinary(64) + val: mediumblob + id: integer } - -entity "L1 Message" as BS.l1_msg{ - __ - message : mediumblob - *blockHash : binary(32) <> +class l1_msg { + message: varbinary(1024) + block: integer + is_transfer: boolean + id: integer } - -entity "Rollup" as BS.rollup { - *rollupHash : binary(32) - -- - start_seq : int - end_seq : int - *blockHash : binary(32) <> +class receipt { + content: mediumblob + tx: integer + batch: integer + id: integer } - -entity "Config" as C.cfg{ - *key : string - -- - value : binary +class rollup { + hash: binary(32) + start_seq: int + end_seq: int + time_stamp: int + header: blob + compression_block: integer + id: integer } - -entity "KeyValue" as KV.kv{ - *key : binary - -- - value : binary +class tx { + hash: binary(32) + content: mediumblob + sender_address: int + idx: int + batch_height: int + id: integer } - - -batch_body ||..o{ tx : included in -batch_body ||..|{ batch -block ||..|{ batch : L1 proof -block ||..|{ rollup : Published in -exec_tx ||..|{ event -batch ||..|{ exec_tx -tx ||..|{ exec_tx -block ||..o{ l1_msg -block ||..|{ block -batch ||..|{ batch - - -batch_body .. N1 -exec_tx .. N2 -tx .. N3 -block .. N6 - -@enduml \ No newline at end of file +batch -[#595959,plain]-^ block : "l1_proof:id" +contract -[#595959,plain]-^ externally_owned_account : "owner:id" +event_log -[#595959,plain]-^ event_topic : "topic2:id" +event_log -[#595959,plain]-^ event_topic : "topic1:id" +event_log -[#595959,plain]-^ event_topic : "topic3:id" +event_log -[#595959,plain]-^ event_type : "event_type:id" +event_log -[#595959,plain]-^ receipt : "receipt:id" +event_topic -[#595959,plain]-^ externally_owned_account : "rel_address:id" +event_type -[#595959,plain]-^ contract : "contract:id" +l1_msg -[#595959,plain]-^ block : "block:id" +receipt -[#595959,plain]-^ batch : "batch:sequence" +receipt -[#595959,plain]-^ tx : "tx:id" +rollup -[#595959,plain]-^ block : "compression_block:id" +tx -[#595959,plain]-^ externally_owned_account : "sender_address:id" +@enduml From d747d6bb2935dfc322609a38a7da6970ead78d14 Mon Sep 17 00:00:00 2001 From: Jennifer Echenim Date: Tue, 25 Jun 2024 15:19:25 +0400 Subject: [PATCH 8/9] update manifest icon and assets --- tools/tenscan/frontend/pages/_app.tsx | 22 +++++++++++++++--- .../public/favicon/android-chrome-192x192.png | Bin 0 -> 12554 bytes .../public/favicon/android-chrome-512x512.png | Bin 0 -> 42631 bytes .../public/favicon/apple-touch-icon.png | Bin 0 -> 11948 bytes .../frontend/public/favicon/favicon-16x16.png | Bin 0 -> 739 bytes .../frontend/public/favicon/favicon-32x32.png | Bin 0 -> 1744 bytes .../frontend/public/favicon/favicon.ico | Bin 0 -> 15406 bytes .../frontend/public/favicon/site.webmanifest | 19 +++++++++++++++ .../public/favicon/android-chrome-192x192.png | Bin 0 -> 12554 bytes .../public/favicon/android-chrome-512x512.png | Bin 0 -> 42631 bytes .../public/favicon/apple-touch-icon.png | Bin 0 -> 11948 bytes .../frontend/public/favicon/favicon-16x16.png | Bin 0 -> 739 bytes .../frontend/public/favicon/favicon-32x32.png | Bin 0 -> 1744 bytes .../frontend/public/favicon/favicon.ico | Bin 0 -> 15406 bytes .../frontend/public/favicon/site.webmanifest | 19 +++++++++++++++ .../frontend/src/pages/_app.tsx | 22 +++++++++++++++--- .../frontend/src/styles/globals.css | 4 +++- 17 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 tools/tenscan/frontend/public/favicon/android-chrome-192x192.png create mode 100644 tools/tenscan/frontend/public/favicon/android-chrome-512x512.png create mode 100644 tools/tenscan/frontend/public/favicon/apple-touch-icon.png create mode 100644 tools/tenscan/frontend/public/favicon/favicon-16x16.png create mode 100644 tools/tenscan/frontend/public/favicon/favicon-32x32.png create mode 100644 tools/tenscan/frontend/public/favicon/favicon.ico create mode 100644 tools/tenscan/frontend/public/favicon/site.webmanifest create mode 100644 tools/walletextension/frontend/public/favicon/android-chrome-192x192.png create mode 100644 tools/walletextension/frontend/public/favicon/android-chrome-512x512.png create mode 100644 tools/walletextension/frontend/public/favicon/apple-touch-icon.png create mode 100644 tools/walletextension/frontend/public/favicon/favicon-16x16.png create mode 100644 tools/walletextension/frontend/public/favicon/favicon-32x32.png create mode 100644 tools/walletextension/frontend/public/favicon/favicon.ico create mode 100644 tools/walletextension/frontend/public/favicon/site.webmanifest diff --git a/tools/tenscan/frontend/pages/_app.tsx b/tools/tenscan/frontend/pages/_app.tsx index e8c8d12077..d2115793f1 100644 --- a/tools/tenscan/frontend/pages/_app.tsx +++ b/tools/tenscan/frontend/pages/_app.tsx @@ -69,9 +69,25 @@ export default function App({ Component, pageProps }: AppProps) { ogTwitterImage={siteMetadata.siteLogo} ogType={"website"} > - - - + + + + + C-&YiOj}ch_!j*w008l$hl-DHM(lqV9Pj4-c*+6)W`MXp zR*?rKeT-`WAi*O=IbAQat#pEF%8`-ajesZ5wIde*N&X{P$8&4zi%Vt&O2!;zM)Ibo zIwE8`lqaLE+rFv2*>(2YCEF!t8%3@m1?vS*&ZXbZytUt%`S~XTg7(;%F`e?5d=1KKw2=>evDZOh_}Xl4-QH}ijpsZoirKaawk-b#Y{V%7j2=TL?-_Y9C+x z8`847`kQ3VC2i8d@bdGHgS++`anfyV%C`4bc!ZdmxPyb4pKl}ZZ+m6cTwk3Jp*R2> z6L8vazOBYemNpk9x&07nm`BRm=Q-6ISK9op4l+fqE_eKB%+aUT&TGFv zcb%NBWUBCK`vW{eu+7wLyZg+u@qD{(Xsp6kYi~e-^p5jtifzUt;l=|`H)xbUMbQxc zU~oE9vrSUSTz`i2N4y`9G!#a_wTBZg;R(te=+5)}o&9qXnokPwS~F)aw>=2}kz2sq zouAb;D;aNpV;J%&6p{BE{AIKhO=jD@*YI;}vM90$>u-$OU9ILuhZEB9v8Q9`VhKzw zh6$GW?c70pLn@jy^bFKVwnoX!q1Xcm#gBGoGh2~|&_44dQgE{4cm2@~EcqS!=d)!| zAVr%9k_*>ifhM`P#by&As9^%+vb5*Uy=^}WV`gm*6te~61D8)HH~yCX57HsA1_K~R z|K`QXjcXC&$pqXuZO+N;^;Hty6hKC18XH(x1B5#io28l6LyE7>D9?d)#9j{&y2XFh zD#Bqw&Y0BhyE^~v)_TN`;y_XUR=;I{mBr-4#IQP|>o9H-jMupnM7nJq1_jd~9p#Im z6Ie?8tcNH6Z69AtP?2PBk=r7R66Y3v8W4o1W4vK4N0a9FNMdkMKfxZJtp6D>v%G+< zoA1ZFy!L2qF+YMFNqLKfXJMqU$lJ(iP?ai5X77h;wM8e5)fg(#*IG7 zh{>HAwl&-ho4fDI_|dNAH78qbikqvzFqqZ_#|<~$w)YbocnQr?v92Gi3tiSoGatJi zAsB$a#|^K%sECeqfc0hPrpRSb8|zxAm0zUXHa7p zh^+sOO-6`dXbeFOt_hNB^gTj6E6$P;VPR3-LGQLbRV#u6>N`ReiNqn{->oVzWzcMd z^>^#AmL zf5_a_eNMnt)Xy8TX<=dg07y2}0z}0T8inoOJaU38grw;NpQh09SzyyqFTO=Z$lCsx zG$bvrC|Bq_CqiXqV(2VZ*(~n%SXR`aX7#f&sPN!S46-P8AibCI;g zY`E`|wZiBX89co3VWna5bg`X5sTxNVMLajL6mi_(i#V+^aYO@I9HJ;edCGEpL3jvV zi#CB=83_oT>ZC>5hMIn+ZKDNPD%w`kCR|Y+4nsa*^ji_)X!ZDxyr`kJ74mbcI$A~g-WMNv!LV6 z4sehz?yx5ue~Fy%`^-7+h?`fKaA37Cd?34!;>8{Ld&-JXcA}c5FRdiJNjSRM|L8gt z@6bX!Hq_ujRetE`2Q3nfM48%4bUyiR5%;^@p`Mz$tmuM50E+H`OHsckoa(h`s z?=K$cz`S)O<`Ue+Ad`%p+b-RlJ-V&Gc45K+z#vx;Z4essxToG3tR~jf{hSbyk9c%| zX-a!W^$cKedLSsbcu4YLCux3$Dz!Vb#$WGlCkGxJp!fv=HdfRHWBtn6SgG9oXMKRS zuI2rRm&anVApPcmQRMdtxdn0oL$RS3Fi3Y!=ehZbwUDYkgykD!<%HR&Q z*??!$z%eiG|Gve}(Pb5}-^d{Ly~o<_V7l|N75;4IITHF*4|*pVL7;@>R(Hr_DDw2p zHj+Snq!~D_MHH1^^(^Bfq1g;b`nCI_FNbSb7Q-x2rs`GYqcQzuFVpsp!UWF=sd1@(0uawpBwQBFs(V7hL*~}D+*nrDj09O4E5!r*OYPpN*_^Ez4utB$p zlhGt6)}YA85o;99w#qYN<`}vttYFY1;owd9h6}-;V4N~e!TjC}kZ#^1sPsV_-ur1# z4lgP6Fr?^y>!C4hw$*n0EAEjC>pQRB_`SzB${(-r zkNWdxqL>$`r~WYq5aT=YOsLOe4}Wt)mENT+l7+ebctBW^uh3e*cyi69pT}n|G-Jl| zfJ8BqmgIeN#GMyI&#!#m<3lkeRY5Up6;JL=w4P3>Qc_vKB{)pj9^r-vs^}<&XH&N` z-FdQM>PhW6T{~TkC36quBk-N5M7)hzeB}3h#b8J z4MWB*6OQqpJoF@R6GD(^$9-eCZ5C4F!UP41mvVRBBtl=wM=i?Ebwoe<-bc zZ-dqv4X1}j+h~HUJetomgPr|%w=XE-JSv@5UuTbRjnL<0FMYR@2pY}ymQegBsS!Oq|}2cpaYJ=rA^i2V@BHJ!q1@a*0EjSi0Y&q75{g71 za+cKJYFT$XnuOos3Mk^%MsiA=U*GEd!9arPGdtv^38!WbJyIsWt{UQ{@xS;eoYpMF zw_YuT4bJL*A@A)8CF4I^iDlcH7d_j4n`7l& z$R-YndCq-?I<87Q)O%Z_JOyK@MS7xTZT|=ENyV~T;KLiv(-M+rje+@2R%g19c8HDM z>gtKmSg#DEH`D7WgZc5SBsA**mD?MeVY(AKOR@AgA3UxJowa}-Q5$#YA=J{(@^FQA zn+U#3*eY6ZLVR}Vrd8xSwFAe<=vU6)XM+oToY(-bQQ>)){j2_oXH2kkY(NcO;~IR3 z1|Z#n1fLu|56x6+u~`J#9E>^q&=lMEdsk!Q#8o&%M@m)OWSG$G$yMTT@y+cZ`G*(D z$_KAM1j{@8u+EnSJoMdnhF`u2%$P8wP0BpSQ|8ep^xv1vdOBu8G(7or`-Q|v z@QH34!Y>iTl9|mpYc5ePg$0%B8McL#Dq5=Ebn{QlYw%tZdrV8tq`;P#OA%i@ z;BqCKfJ5YP@cO3^f+AyVOo1pMJR1%^^^->BuYR@07iD~w8X}sibxP+PGNHVV8;V+m zl87sAM)XwbydiTZiVDOT6U0Nom6w0Xn(&pBs^Nyx!=^Ifx~dxYx4-=}Iv~YhkRBcy z@Qwm!{fOW)@Gz5E=-bSjjpBt~u~~KDM&lAE{ZM)JW?N6OAC%kHq#|xmyngG?4pD)G zt&cfx3NNg@VWU}n8inokXaFVYUSHNeA*D($xMAeSy8)V|5=*2wnq z*RUp8*JX9*vwv$M3SI#F;hlANzJx!Ca5LKgZc)ff^XE8QmV}&r)30;Sp57Gi%y~Pa z+I+_p4n}1ryugj55!X~892G8ykWpO35Voexl}zT#yYV+(xX_o@@2j$+JYINSe_QRL z^}hv2x*bB?1K=;*0%*TUGp1*KB>v3(dmIkR4DoVPvT@55>wfsQ3={qsB|x6UacEKJ zX{M{@5`cdcWw~tIis^XU)b`mq6s=V{fY=xH(?Y*FvLT>c>Wu+{q0`+(n3J{D5qPKxzOis9(rGdIpxqd$t@&jV*YBvLVhBh%-b*ZSAI-vDf;8b0O8 z}pOxkI5#1GvM4b6_2Y z3B1l-Ob(IK;5Z3wpOCbRkBDY^S@EN{f7%eBh{|eHLDYSGC~VVckxHahmko zDzBZN$B&(iW;zP{>?6;BEQ2Hr-wLefvmf{f&eo`N7$%HmOW2EUjlG8f!e`?Yymv%L zZK|IGuy~MC7=JhASjZ{JE>Mh;P;oAM`ESS$xd4H0(9u0A z&=e?+41Y$sj(bKhL2lx>B1ZXBlp5%KU0Qje_Y7apd3gIa+x?IAiaY|N^Q{CnIN|Vs zyMGST>TT(fqbk_Q9fc@-0KcAFJT`cgZ|CZ#Anln8L70cL#p*vq^?o z4(uvs1q*2%K~=yePiWO4Z7`$trb~0CA54+DH(Y~9_MoBZ)7!Y`NH4IvS<(N6>;NBe z3~DlAn9|03GuLyMpR#a(I0!FG|7&%xt;$~T(?Rvo_OwAZ({#-1+UvJ=_IoMrA(ftI z^dHmSxA5YWnuAQx0Eu5%r4t=iKu(Bgk%dlYYQHSf^N3#a`%808%!Y4xk$SxU9*T9@ z6h9LQ6k0??pnVL99i;58<9&Q^tF&C+uu>ql-9fx2 zZGLQ-#K(PJ-g&;T^miZWU~ax7Vs>;-7;2$0^O6KJmIqQ~kHlS%Ij9L1Y=Z}M+{X9l z42v!M%eohgiOXNX)n#mXsE0&Xgreg8sR6tA~qvwUj*W1%X zApLXLKMm@SuD;TfiO&6T*Le`6%_q6t&QsuD&bwc9t@(!*d{i(h-1~&LO;<%GX_RWg zoXOtKLJ&mDXPTH*L0|Y7ox}jg`0uFWS5n2@J;##Adu`xNo{heZ8xXb(kl&xx%Q1 ztfpW7j3`ljf7ep8nBkR^lR^LJT%mntGxs(OR5p6!Y6SnZK+yW=5zaQeCi`(u=!-F;TkoaV28edV?I>IC0j=GFRbmA(0jHp z=5p7vd$`ws6;DdunzcW5aoBSA_>~N`8dx>|Y*$Z_sX>SUy_dq%vW+i?_~ zWbOXRwvM`3esJKkOdexIpt8y}Tg#7hoz4IQv0p}3;*vHmVDaN>KqrKWy1Duy3)h{> zAE?Klj$ghq>QFE8Wg_EzZj!wf_A(V^GTtlG1T7~6N9WLwGJ%Bl_GUituG z&&)gTo`|;A0-TpKa<>s}x8qg0+a5WU_eDwnP?uX$Qc1~7k41yc;GT;pLv1|*QFO<& zEWZyGw+W6i=EWZdx1a`%Pn@SRgu*88fA3shtjG>I%$Fv+3bZE4K#}zcFYNrYklzgD z=)sAks#6cM@><0_td3cdwYG9;tlqTXD*q~0B!bhDkOMwJ{U}~M>@#U46w)en zJ6|hc@o6NZ5(^$EZ8&?$b=ikmyw6oUwxXd`>rn~}spLAR^%-PyV5~|-RcY1trYlyq z7uHAYd6Y-B z+0heg5>`bB$-qbf4AM_3fJjIVN!1yB0QBFj`gVoiLj3$Z7<(Ce8e7g}=nHTIr@>B%zE*R98>f1DRY+`pO#<|3!GjQNJC20J#2=)f|+PEg3bpl|z} z2W&@*DVe4;vFz=QWkW{dqb{tQS0q>F`WG(~d-}J-Q{n>j^*tAl4gcU{0S}dZ18GTM zXB&}0I9Lt9X&oSqcWjl%=O#Tlc`b@33ghlA7qmczK7HYfaE-HnO$k0MTG?|Gk9id( zeC_Fv>c_0+bzLNi4fpkv*mfwH%fL_$J@rhEi9L?@C=_oqI*ROB*i?`7k-lK@S&Tr) zA_Xw{ec4mR@L~2}+~ky)2s9o*d?bPPt>Vwi%y_S)cVQ$G+}j-Fv9J2aIl)r7bfUbi za@X)?7o#FYnX7)3g$B8z&;^3_gAHVq$F%mrCz$aP?UyK=8eNc5P(m=S`Z z4V%!vu-H=nZX2a>##4`r8h%v6Pwy|VOKgDkU* zqx+WN(Yqvu-n7p8?u+m{Pn4pNff{kAg3es~V@H(D)pcq-zX`{dWV*-O7eEkaKqc!H zLYU@~opTK{(v;dH`2Kyfq`H{;WV1`OpxX~#mGyv=IK?v0of%!0y6wD-A5V|hrmcWktWEV2kI6 zB5bbQ*AP4d>iC03U#?^xeDI=HP$D8#(T!kb{}|Hb+%scdBvnl$ z(b?$A2C#%J;W&en;!&oz1Q!QeqNzhjm{nmNYSvi;a!xwSE4Uew$IqO%r>csXq4BgS zv8TV{XAJA`WBz)edAZt;6gwy^bZ1uT4t8I<5{-F3pw=nk2Pj26!gWFbx0CjagilEx zKS!hLk87UsFu*23ezW=A4&4V{=?? z=UKLdjVwpfCPa|5@t0LGBBNJSdQdZ-WyW$r-Iv>E%T@aUmI3%diD#=BlICgGs~3u0 zu$LN^Z(UND5z8J|oCj9Rio%k6^h`jck!&YqM)O75CVhM83` z{l=~2c_*WwW? zA*YV8)acDa6)jx>-hPX;m^SZUjKK+JUM+#kPME0d(OtZc88)bod%{P(BbM1cj;(k2 zaV#Hi&nBKadU;eHsKsk+UJT`^jXZMrRWL=`w42`D_vYigJR(L&7WMp?zi^q6VwpFK zdyHr=^e>s!V_6BMr=0JUa1g$RZvmn=C#`g>JyNgNY0df!cT^v?fZMwI$WXYhgw2yj z?%^93*A#ODnR02@tqVx;6RWpTuR0ECCj-qaeMlMA%7f_0)Gd=JlxoeP;ff-T6`g_O zL@$K1@wI8?dx@|bUXXv*dbic5VheX2O72f3+Wvmh+jG#S9rZ&(ZRou-NnwuPa|%x*R4g zEQrxKeiIqlq9CeSJcOV&QMq3|BvecpD|v{(U-ro@vd#;?lNRRRCpUysCZ)yFlZyPY z2MH@I;_ygHKWRbB@9YWvDo#D6hcO=iL;>DrQRg_j%kH-n7Wu`~!uqV6D9%c27fBTF z$X(kM7P(^JAXLTCeHm`qd9`^_Zfn4llCpzh_n$j_tLWt7=s=|GnnSub4J)S`2sYDQ zq1d1u|IU_bHjcT=xRPXU#IZSCTm4Zqn}Y^xdPm{_LD3SKbfo!vXv_ z1Czz zDG@1Z(7N!{J+m-k(ZC2lxmqjU8F+YY93jt8KEYH-k23ClVL|0O2}y}BBYBx{c!3geaW%pf%54};J#adKM{jdUhw3}?~_Bje2$zb0)Zvw91%(0HLUHEbK9?Lu4# z)v0F*6;`GhQc)b$(8FS!U7v7I(ZBj#_v2Y5CJN5@CB7UR^HuKwq$3p)6*Q<5$DKZ? z_DeJBH|^pnnYU%Wf?0J)Qf9|d*@m$+WIOjEOq|SbL4`Xmn>?J>C2aN6udqS_d~v^R z6K9*e-^MBAMVS!pq(r`L1G1>f?*~45T5oL6P+<~+&@5J9NvF7R)M}IsuotE_)@U}? zn>gWdW++9YlBOyMiwn8Elud*PZC&Ew%sG6Q`4MDAQE{d|J>+$2EcXQcHloQEt8Y9V zb0kV(z$MY#dcGhWrS|}Jdn16YOCUnG@ZjKtO7Vuws`*a~FfhM>^%axqy-Al-Ps^pl zWhPFk;&Re6SE~7rqaof2*75s2$?5&M5hi1RM3i(>jue`CUQLgi{jG#*2P*fMAjHAc>z_ zU6tc$s!edX%=CGjHd}u35Vje5VELAHZVYJiS$T=AJbs_z#e`R9{~gYY1E$P*X18sc z>Yhsz-G3I0qx`v%Cp(Ws=g$KV0U%)YsE~l4$$O#z$ADn)=gAhky}gb2F3I^iJwSW{ za}59$DT)hpo`zt1=kNR&R`f_WACl@7tm+ivyW4|(h7^#)_B~>|r5;aIQs)518UX^! za=bNdu-Rzq_xnBaXiUBf$QIfseRdmVS(oVGV*=#FE|smXnP9&Dk|yEKMV$6h0g5W1c{A(3 zfc-i7<(Z;BlV7=;1ggy5MzbekKq-j?^rj!pTPF#7m|+B3xb#?^e;b~=jFJqH02=Z+ zOLi+$GWch)qn?F3754q#0t^48-f1s!im1)Lu7;S zG6ZRqqI)&IcL!|~ze%e}48|@E2taxHQ9BM&>vz>b?R+Z+nli53Q@?8lv{|TMkO53h z@c*v4+vi$RY;(P$v7b zR5(a;@JcN%whD!9l+yvjCuE^aGmqb3Ff_MK*YKWv6*A_D(J!q*RWCqtPy_r9Ey>)rBR>wC#yo7J1=7HCBX6qP z-L*-T^NgV&e6)5t3=8K6pf!k8jb@#wqQOTts_gXzD6J15opbxjjMTcfG*0F}N&(E- z{jjMxS!uGg=d1{?wN;46OGTa!(=Gc1wGdj)8Zh|^tx29bAOI-5fBH? zE0e8WJyPWS_f6kspagQGmkGSt7woZ8q4rafwNA)O7Yy}CwhGAr8GX(THqN8!wjV#z z!3+_AX5D(qr$IgAvdsEk(}8$9_5sS(Mhu$82GV4nq{#?3D*e6@-%NjbE9FQJJZ3$N%kA?N zA}=8YlpUte1x$`J=87%t3s);u#)!cjj+f0poPQ7hB=AeSV4}pantR3G8vFX0I3h_R zTog+=q??pLf$$w?NnYQcmFjcfg6>DYdlJ|HEFO3f+kLWOex2GJQT!vg!`oFct4*Yn zR)J+bu>6lO0GIwOS7RJw-M84lZ4F+NOrQNOUGEZ&%sDPr#4~PD7WRT9AE3%U5r$s8 zW!3xnilhcsi~FBMiz9u3pfCL0=ZBS_kWU&_casrT?&9?)9xW`TI3Q-~c_K4`=C2c7 zN`Hy0PFz{0u={=&i_Ak=;lg!{WM8PKteej9QHRZj8yTdiO=`uRGWGgH`L1iT_B>W# zGdXqFT|^c44b{Ci-S23JJp5=(PB6U=wWbWuv)OuPdUoqvrqP<)P@F{Mnl z{`9g9pX8H&aeB0V6APVf+TZ}5=)TlNmYL4|)scs_ z<2pR(&B+K&U{Lm+SA8f0ON?y(gu`T&O0a$m9^B(W+?n9957Jq?Zwv#e|F zGPCc^oL!@f>mu-(rIOc4p1uwJ9g(~kuW;%;4dzn$aDbD=uO@{h-BYXFXG71%XdWDi zylCIZ%hXEJS z-^SN&$=}kRp4*KncY?s=J!ctL$k`i&3ewF4SZbpJ}&v&VyP0(##tIG{{kL97Sg^^Cd<5L z@}SV5sV)?YO^0WPWz;J}V@Q@|U?dzgnO30TVbs-r^=ao;z^53mgzars~UKWsq7&cAXaK@pc+5n(nA zajnMxGae5J9Ag%{1PYmNm6z5W&){6PLwf}R$$KB|(#Muj5+Qxg5C53+o4wtt6nXf} zq@%wR!quQRb-wwVME+Ljh$jHK8U!CP7V9_`eyZ%|!OWPqV)~hMB)dnGj#_wO8~>4N z+Iz*{>N=W@5K?*^j3B@?{x`Q19Bz{Uz>Bpx5~r=D*CRyT9Xy3D#%+IwPRhst)lGGU zVt0b#&3Aprx!*q~gxsF{C#38_4bu~DrtXEn!|wh|UCGrA^RDaBceFCo|63Janz#4t zJ*3Q`w!Vv^y4E&FnZ?Ie=vT&@^{*oNr3Cm{D>ye|N9CZ@8`cH&FP=MS4x-RApKe-H&|4tt9U+!EbTr9;lXY2a(AZo|I(}4M z=vS@Me!KlbeS*~zap;Idqdj)Titaf!oZ38QpS_`?pHmg!W4M}}I3gB1u1m$y7hbG0 zhR^1W9x2l@-ryQ?YMeE7GQv5CuuX50odtu2tGWW$c2$tohjZv&R0~7M%CfB(+eM`W z7>AM*t&_wO$3;U?2P2I8@yeq5krdJ4(bkB?EyF3oZhc6A(Gd#)T5QCn|1 zy!Djbs{s9HbmnJ^Sm2S;uzM+kYb03+&-V!2cT5Q`$avgrDL5;xD*LUa@e13x$Mxz! z`wPsuBZ$_G*p2>>UR-||QZz{s7qnjThl^3x1rzK@pqVwz%=%-e;hcP4cz_V7>9UjE z2=vnAn6RbWJrq(MWbJ&UN%B%wyLBeSW#1-A%U^4?{CRTvoeU%-aXo41#7z8@yw}zf zO0GjQx1*cd@~IPBtN87w_c!l8=h+MkMNw422a;nUtBAMRtjhmzcz)ijKYo0Cv) z=%seQKS@QWBj-{_S@rkSSdPM9#pw>~G^%vBl;Y^>|67-;@0-;ROxr$x}2Lg(ne4A}qq(!J~QIk_4s z{?@b^V(ya+@-3*%zzQS6O02CaTcD zUWG4~j99u~2(SSOvw^!w6aXR9g6Bsr>uL^OR2)}7sP2+Dbng4VCTaOT8$hD*eBaYR zFsao)JVI`eXe{?l8~N0>LL3`LF-ewP9i$NQV&Jdrf|GX}9P{^yic7qbmQx=Dfb#Rf zHwvBmU2z^w6nAns-Zx zZ;~76Tdv_d#T@{PkuW=noB9;iG73qQn;2=RFaWxB@AmS^z^`2YYkVeCyCEj(eCwN^ P8^9waO~n#kCzx-O=^mZ6aWC~n_B7y0KlPN;eebJdfD>% za{#@-+zm9ZgMtpWc>uV;O?6cxAFCxx%KoV<#cf15B~=u@`tUSp9QtjQB;HTRk^1V@ z(c%q0-KCFikx_huu1oQgVx?7iX-YvSM^Q~`0jcaXVck69?DdgFV^0@9H&nVPLFqwsnf}-r>G;koOF&t z;ZMt0fQuTpqpODn4LBm9_yHz9L-#*jW|AF9zvZTP7)@*k=rQg?X0FQCb}g&|z)D{l z{PEg?6Vy1f41_YeT_}$s`o7z;0~0chErlBJ>NqqYYE-W*mygM_i4`Ly9AM;NU=A}d z>O=yT3R>NoXa({1VF35q%U=YrE+>xkr6b|s{EgUim+-f>Ce(pT>LZtPdNps~o5Fzy zsXw%4Yxk3ob6o7O+I(dYbU19icx?6K$yCVrPksiUaHJ3&;77}X+;dptAHE(ZdC8!3 zxqLiO_(>sxThBM%pP!+^1f_U5x4-$re%FfAm$P#w_0(vuN|Oal{MJ(musNK5t2g!# z0eogtydzm->sD%S!vG!!56*SseA8}eWdP3-7+S4AJpr^q&X_IpelLOjw4jsyiq|dm zCkKn`t}dK47vgIJf6aE3Uc&oD6JMUk`T0x-C?a5h@w0Hi=hNfWAQk_k^=2{w|D|fF z$okzezh(^aF#=!}T8=DNP~^Eg0a{nQef3dXJx{P)xwwWXl@lLa4;dZtNAapFRrqOE zTHsTgRVM(>?qvF=j^roFlW_vXT%ZRP!}JxiEcPS94jX4CTi=4|s6pd46ZcQ$56 zql20oUcjSYhl`hco#E2?P7>f`L5wA#lEE_LFD) z7ez2bd!1{gG~bDp?xr(0!$2%DRq1qYpHuCA4ga_^8)=$I)v4S>d*V0@5J_K9Yp2XO ztH_5n7x9C+oiFg@-_=q3mX@uv2Z5y~IOQ!TpG8!? z{xSme&G+Zz{oqpM`{a}UJx3(zKmngFd_uD`9~~(A+o0cG zP)kk09RAcUq)}5ATZ-4gEz9abri(6(BEdEx9@>tskp8 zou?$e4A>`Tc_Wp^XkOv6s0w<>GpGUjn1Zl2uQxFRaAX|*zFXJfzetJ>?|txxb#Tmm z@W(7Ypw7pE2GFr+3a_<<5hK3e--UM~ER5iB2BBAR(kJvz5|P~3agKOh&LvNK%IT0f zB_yxKS3mbJuc5V_$305=W>h2~#7||=!$F4ZWdKPCPctyvE&%N9BteN|qcKT+nzbbn)IB@|Xt?)j5{} z$@VPm=^hNzd{4X^iPVip1GI2)Kq99`OTVCh1A>SlW-2`j`6Y?zb#2=uH9AjzAegKu zzxg~Y1{VwjY^7jAC`>#*BHu# zdxkc*W8H0`$QB7{;e8>sNm@~_YFwXcw4vh{i?dr@bOT1q?3P7_kHV6!Ji>Vf zSod%1-IP#ICxnZ3B_TS4!Yv@@t%JgH*|_E_Z`pK;JCrcH#Va%JudSt#3tuw%;2iwG zltS&>`f|YJ#fn;GIX09Z^HBfutuHA6Eg1a85!3q%g^owt(s-P25N+YxWkgw+!(kvH zevZ1}nhxty>M>?)=!d)^)ms+KZ)!hQwAu~&r8fK)bp_sMOh2fl?Y5z@8g*NqIk)yv6*fd8!C5V93={ z6(dRKh!Sf$XwkQ*v`HgSAGAWP)7N9%ycSu z^rurHcR~rt8`+;3R4xjZD{v(l*I_w6hJk$OfMtfSCe%wB@5D{^f4g3y42nQkOp&|L zH&?dbMe2&90#E;L=%op-Si+eA(a|#HR7ewDhQEM|z}K0Os^TcJs8<$#u@~*?Zx8Hp zf;IHIvBLxaPjj|fQp2et;A0Hvz@Y%B)#K=X?%B5u1(!0(=I`7 z4HIK8%6ED}K`a#>!angMIRDB><%T6r#(lF_-!im4_s20rWJ=MN+@lPALW+h3s-$UQ z3mM3PY~Jin`9%{!e=!maBc^91k-{B+2=Pw8g#WvY#7)hZ7{8@_4;=VhVr zpA`-`bf)-@^W0Hpdw+8+#C-y38bcZ*iiwgVVEWMFY5P9=2O(OZ1BZk`S>T=@06M4; zpAl3@)l)zWq57&2&<1(k@_->n9vpG8#5!*N7cH1DYG8jY5zi1SGXTSLD9oI=uS{v9 z2M?;GZu%D?iQmw=9MeQ}C0y&`)|8$Kd*I1@R)0E;#>ul*Ds?%A@C@gfmAR7bl^)SUdWh6joQx6eDD&5 z3Or$t@jLfP?9BG!8S6tgRCC@6F>~XzS(mo;3xLMOE^Uk)e{N}GtI6Dtqi-5~nD(!E zGKm{0$9nc#aq0ZBgvnibC>I5iFN8!t#J{FVC9D4orR$48=kl@cx{11yV~7F&-zY;; zg@7VA%Az)P)u&YPI5CSa=EXh)v9^r!41{8nlIr&p`eDU=OFh>~V3qEzFxmB6V2qAuwl#Hbx0B0Obo?@DtA(wrCCQDz`* z?;@2Jr0eMY{Mdd0+p&|5cYSNnLOda0DdY(3CuU12@4-*<(9R}l&1EE@U{r0tR#Y2G8?S1Mdz1vbI~ce-m!x1*dskEIg-voo zdNpx%aM>r9EnD;)T^-V+!IbP zpumcub*Y8{+OA*z>Lz_WnM&`!+JB9mNIu0Zy}LAEh}s+w0T_b}vV|Xt3ojWk{Hm{8 zS6hncFby`Vwx1EeX#Rx~WSb};`(?`QU;&Cdrk3A^_wl-a-@Y+nIjFFZm|XOpSv`R- z$o{N>C9fL}o7^t|Fi z*|J$jEVfpeIZq3EcBI z@zKM|)Q*jW7U|dqS+YAgu_w4$8XQRj3%s;LY6r?>{n1d=x%#mtW<1gO4*;A&N9%vz z>M6^ucy7wj#~1XQ*xH>UKv#5wex(hi z#|{zT*s0PLD!)T{X8vbVb9VB!P>VId>8TuVk%Rc17sDzf;2}Au{ekh_T}AyPX{8kR zcwUK1Bll!e4M>0MjMr{6frlqJp#%_5Ne&-rMlS;7|61eR&!;u)VB-6$3x!SqJ{Ec) z2nf=Pc|PeA*Q882j$~q!?Ttbw`$hoIKeWbq5lOPicl#Fl@Pvrcx=APN$t*Y!I`AHU_ge_(m*w$Y066;kdtC$kG6Gfbg z5TKOQC+THKtPOgf#FPdQb>OZ^dMkDQt_JWg;1CzP6dzqeL#vFY0?@#m6ip>bH)T5z<%8GZM*qgzW9Un$)-;1_(@ooSSsXG z7e+mj-Wz>iIgbrDDvESwkQ2gAv@%i_e$5*v^9a0PVLf8fX@5=fOcOJ9b+Uq>@U~1e4{-D0#BE!GvQx_0rNgrmzfLC{Z=PM0+J1MZLRu!Taw-?oPy1X z0Cp~N;6sFYXK2y@Q{%N^H`|o_!jOuNLYNhm}7CkWqRtzV^0&UaOKl7>JfJ zRYT@U6=ZtUKcL$xGX*=+sVn=snz0RvWk?WBi-v*UNa@!SyA-5wu;Odvv^WTrh`pR9 zmG8q{n#~Tb*l@iJypkdjg#c}Iq<`4}Fgaj)?E;9#p{juouEW`F*T_M3Pu7P0eJh`>fGrnmpTzh|3 zQ{0|hP`L0>pbN2YaT{)&i#?HzYCvI_0!>Ki<{0Zjf=xj|-*?(mH7K{KARog#7B|Nt z$ziuIUeV@K*T$MNTp=kcH`Za&X}yr3ocduM%Rm=>qh&l(DFbBhC0$H3gI!f1$R8W8 zpH9QcX^A1Pt67y-=)pIlM-#`uoZe#9(N7yreVC45i0=ptUEYR{?!F0Q#20I+vu=;C4xYzFG~eD`efy-q z;DG75L^_Q5M6(L}?8w;36yEhsHRTB`gGA`fr7YTs(?^B=cT7Z2ll?1v$2&V^X{j;2DGpM7m5w9Wa+o+Bt4=I?w>%hwgNEt?_%fGns` z-S_s?V2mgx>(O`VgMUEVsy`W-QJt&%jp9d7oSe!+_l5w>JZcKFMf1x5LkDaN!_%4x zYp$Xz`UNr;P=oPbTlU^#Wm0-_H7~UBGJDa=FWzh?sF`8wT1J79`64&nk8Xu8LghC; zWV&lwo~J8nf(0~++KgH=l?Xe2Zpznt9(9}@vFeG2FC#A&Nlc$ZS*Sr>UVrokO;E_< zj4_1#E%SQR4I^qbt6i;DYBBACBEr)lYu1{wBATD!|B{p#oN2RsQ}j! z^ffHFe+D6N?EL87q?fxkuS*$Z_Z{c|23Qf<|Ed;A!IN#)!|M9t)G@Js1yo4!*^q;v9F-HAr+n2JBGAt8^-^HT8 z?=>d|jGL${V|I)VGL-BNO|7t38nP9A7v)45WObmYw|}`>SHI-CZFC~95L(Gb5$CXP z)M0E1xosVSG&Q4t$)D`#T5=8s-#C{T#xrSQa-g$)$bs5D^kDkU$+#JDGi{cRmyX=S zQz+1m(IXNT%IUQfvO7%aTYUE>)P~%7Gv2)#*;ga%9CWR6Gr2{cSVlo^6d(L}9*dOE zwc#mhoFOAqVA>nhzwqx4E6M{v@LsOG(s5jKeF+;Og@UtOO8Z)JM>w*8@2pI@d7vAV zHAy-rb&_*E%}gforq*;{7~jka4&B*bEbb}tg-Q%YTKaAdlW1x6f@JbYC0b}y8&*Os z?K!j7?-~Z;&N}LxYhFI$(qDEXcrnk%O^rW3o{rX-i*hvcmz9{bvbHO=Oh=U?`Yt(Naw5Y`PUg-1^&AXOIF zwBA{dH-8Q4UFnGWAI#;tmRx26&JE!)t?HOn{Q3TA?PtR_p34m^_QZul>}KdJ!U3)^e*>Lbus)!Qs!$} zL}c?PAf(B!xKi;+p25p@1`I3+^Y3o^KxgSwqg=mt&ZMMEtfpNQuA_|1dfF5f z&uiDWnM1fL)UZ!}<=qDgVYV9*5l37{rn3?`0MYr8lMH!bbt%Q7=$(_{VASNcZ$x-~ z%i1i!aX;5NOnI>qUS64D*1?qN)}97M$4_5Z_sZk#(%HE%l&Z!YrJl_r2gHM)VZ_@T z8U7^fVX933OrKx#YDEpzF`oZ5MFX}5SA8l(mCZ@O&ncCrQEPpef&fv@^bS{P;i}xC z{o&;8*=Jf4EoYWkOyoSC)lK@4>b4Rwx#&+Rq=L*6C|Jmt)^NT`+|9Fn-eTTm#yPTq z+Y|y4Jg@vX!bZ&%&TV%k>Dg}>zjr(Ku7pi2T{9oolb!mGr8L~MU+xNe&>FCxU$m5mKL}huF ztmclwa0ROhfZ6q6Q4-+%FX3y?TG&FRghORBc*@iV1+MEkksEYI%D`9`-=RV%TId-JWC%wSa%m6^l z^t;ku{Ry)10>R~@zT13+d%-$0-4|D$UgRV@ zUkA{@zeY+`!XQQgkb+wt2D*d!NEs5qz*s!!>UQDUour=%C35!jy=@~=qU)3u1_kN# z7B@RLNQ`#ns_ajf!(F5MEuM-6mKT!>kRhT9C0|Gk^Dh^y0qvRLFJ$TL z^+5~#tCfa)@tgf`h@Sw_oHl7u1Md9J>Ro9r+-j26)L>5ju9chmw*X^p-zz1Yatu{` zYH4}*g*?z-9xSiT;2%G-bpnK&KDo~nAAmo6z+}(7*|)?OfyG0->OdZ}!#hLnm8)<0 zCag9n;A~uNi9Z8K6-#ys9Og$i)I3vY)E_?ld+Xgy3qKx>-sO?X5Ta;Ut=!O&t!%nn z2hP

_r-EdVN%;f#~xq?py)nHPqVx_foe-@ckJ_Y*&5xn%5(g5x2AD@K3=G`^u6! zk_$N1f_EfAVdc@T}J`%`wRM?uFJ> zqzV8Lmrc|6ZzrE#tbONTb(UKD-*^PtpJQ-&-kGHGq(iB{S9@Y{h==le>9>hHp_x@D zsds6}Nq?G2s9F4ZE-pV#d_mIvE9&7@0tt5dO2rR=%dwi;__bs5ecc-nhh1Ms_VqW> zK$PBGuf?YMnfJwi+*EiUgTCDBKFeYfN4$8?vgCvU36kRum#pKw z6|{F4H}l*R7=$fa!m4^6r~RZv=Zmz0ggq`X*>BUVe?L!=lfkIP}Cmy%TlQVsiBOd zpdlF9+wYY4!!G{I>c7K(J^s84QW8 zQoLZUZH=STn*P}5(xuSzcW@0&WH2xWi5aFyGgXA9syJHqG#*Y3KVeU0myk|Aguv`y zg7!DyaY&AH;M+!QP!kO=#timQY<3v|WbaxVtHhc6#7mGXlX3d5HT(%Ze8(sEZW$^n z&2C!m*VNb)imYWFkJ!L*S-*tFq54M%FD9a|3OeRD&R6v8ng(RC6dLp%dgW?KFh*sxh> zTRfXG-96o#in1P7-k*M3tb2;*Q$ez&9YYVTEi`)rGJY0B3{i|v;=XwDJt~j;+)=+) z3%;mpQf1YjVHqIvjL)YDNlhtoyFvv9X6V{)>uF}yG!)pqAn337rvQrZCKe|~#RN2`==}@<{u<wsrg3?BGeRBG5+VR{|H#TYJBk`M)I@LNX6+uJgFtUOLV~3>BY|@_?A6 zvbzSuY}SjD5ISW33A+s4FGNs5-MRAztPJ`x^8R^rp-J+o<#n!h(w|E~b(&@9%j8u~ zdNchz_$(c$ewr_Cy~cyDjw4c? zwp2)Rm!XLQn(s%Ooho`xIyu288o=mciKBEBfq(`Cg!TBHMKvowv0Zjlz6hR$Obq}! zfTxarfHv>5X<;Up=#nIFl*c^hs#9e>>bu*_av)xRBsDU@k8>9SU1mta-j^EOXW=PR zKx_$-NU%1B4l^(O8r0VB2;*5UU(fG%w_EiS@Nwcnn+{F+b(ovdU*xu+qhO}sXkqpn zt+{;+EY|%->xX;qG5xOyu7$NlMbxbB|0bXMy?yl9Db2~^QkT*ZvW5nri@AhO3L>xW zWhTknuOWfuGhEs4$ArG;xsdbEs3x`+3PG-D{QdnaP55Cv@db`tkM#R3@srHj9>njP z(UHMbWLz$fCn7bNcPAXSMh|KgUCK300{YaI?kC$`Dx@__HkYOE2P^1{IeWK(QMq$dFK`c5F~7Z`X604f8e1|8FZ5 zYM$_WH}H5o6Mq^pQ{WVqUNIo*zB4S@w|{HzzRFQOWjn*pgkm|!zKZ?~im1?)OLdA+7#zCp33up*KjK=5cVKFpj+Tf70EJ>!ko=4Yz;Z(=Xk=KssH zAK85vFK3>nJpa$@X>oB+%-7I1Pb=$p+$zS%5-#9y*gI5T4iiA{zh$EH`|Q91H5Ufc zMvd7vx6|5i&XeAT^_@r6MXIKti%fdhaOVB$4Y?zu#S*^ll<8){nm(PTn0Eulr4$y1h{EP9v~DTd3bD2(~BLW?Pb3t?`zDU;l1 zHP4+h<;Y)8r-8u)L{7a!T4X34pX2b&|2J6951GsI_OH<~{n>%<+g6=SdR!AkRhuTx zQ8>tKGWCoy+^rJY*D*&_u~dYBXt-)6g50Ih)+z7j^JG)<*)CeND$YD6_B!(huGpTL zbLO8@cBcyolz*gr9tF|-tQt;elqU342UNAIKz{PCdM?nJjv{rj>egwlr>OKu-mvto zTPeg9O@mFn^j|JjETY4COP)Fe>_6R+k%I6v+a-mA@q&~qjUUh7S-^5MB_>j4(y zr#a${lL*BALj^Q&P_=hm-vPL!?pXH%K|Cc4N33x08nOza)J|Khv}oQoDpD-y1LbrN zkGo;STk;n2bur~*Ox=}S#J8lLo>#}!<}+6O$|^GndD5F zpLg@|!{45By7MYGZW@p68oyWA$$6U=FUfJ`6;}Xq;8P${w%lCEjpAPN@1(h;wXkOH z-yLuaJ?Z|NV1E8dh9<)Y)oC$_3ZofkW!->-Lalwxbahf%xdS=#XCxKsw@nlzcyhF= z^Y?8p~$i@1dyas`J3i3S_qXfCS$b64vC+;V_rcUc-rfUjfE(5 za~Ukuc8G^PsoVco5pcL%UbtLKt=-8KV4~tl5SyVQZpZ%c{7=`}gx3VXe;BU+E&j8QS z^y)N51tVr1biDm{{Pbkkbv(|s<}1*8h@IixV;uCt64exXJqqUo?+J2A(j_9|Bz`V3 ztE7q(5Ep#T^UbcyN2%&M!{+i~7D8Nw;8-*lqNNQr4C_kH+K|3j=Yr#R$hmgQ=YctI zFLZ4BJSqI`jRROgHkbK5t7?kye|d#NIQhgV=qj3n7G%-{0rvf|TY`6{_UKK^RC9j%2!=XYL8`@F z0V5F@y20>Q)XrT}KtT@aab{JXG*|q6gJH5IIK}mTxG(t(-nZ><-P&LEiFpMF5@_jc z2`6O67i~D|o4>rXA4-LGsjQ#h+fVb#@bBc#!P@t`3ip}4xzyRk_vk%~II5d%fdCgA zkip05m;erDC1|xndvHtbSdn*aKdh6MGvKIOSVoo8WOSpuyAuo|(v%e5kiEv;pZQg& zuCuka`i9K-N+XqYzS~uwvC!%O)O3T)8EAFevpHbAO@L;E{Rlf`Os2Zc*(GIlQX)sX zqF+S;>h>mIT_XZj5DAf^6&r;Mb9y_cJ$3111rMK9T6_$zx1mEybeRVJSoiZ+ai?tS zA$|LVxQjXIxZx6I2Bq^e7#@K=PUE*n0c zs=f>e8=TAKNMN+?#}aP#S&8G)Li3-rkLi?ltUq38u=+52lwd^8e0Xe4ZaH!dzLI#n#f*lv)k(A3dmWuT42seL7{$aHwe`h2 zrK1-CrrV^&I!cvZ{04r_hsmr5f5VML#4JKW*NDYE)XMdwNnV0g66dZ&3)`fhSvvl^TpRf;vGFa<-#sNbFa;;ug+aA2z(z-) zx$)`CiOye~-pX9Vg;B(~Dr}MWsT-LJ|BLIV)%8SHWdu|hcQ!B+HcTeDo*)3sG&eh> zmOb1rRFaMhABfOqx3Im0)Pi#BfBD6uANuf?&J~Mg^XAqhqoR-gy|wZ4xfV-~`h{dbrq+l;$Zi8H81~=ilRUbv4N#AF~d_nr7DnM#8EipElhe@Sn zQrkUfFzC~;kp6!#_9m+)s%vqG{mTgJdw{*nNcGRkQ*4VRy@Pj^9iZpkLmGDv&Wix~ zsonbLJ5j<5Vxm_>z(>j-J}hyMm?lfF=6$qJejv*+9}=fw+Is89l_s{IYpQ2V6Z!um z`;y0f_+X(yo}aA0PT3Z+tsUIgtnPz>hnM@bf^+>9z#7>^r%(p&JTTs|^c4n#bI*44 zWEoaWqi)Bi<6T}c6zQ`*NiiAq2#zAXh2XICD z_0P>(9+O&aMmot7|f_7s1ymngtUS4-FqJl^XODF z&h2-Z6&da^0W5FJ!zi1$%yjdDu0IXBWEQK zTb9WiV71f+tN*%N17i}T8rC9dZFYHHuL-qHQwHQ*Jn$V-AVfETybgkxB=Uz`oa1bJ zN^bYuGYWczBL;DD9Ns!A`D%iefJ5xmD8n=H8;&GJmh-*QX_ZA#cn}lmvRLs)q4gcy z2>KfYF;@%;k`YAIbaw^?FIwV_h__CrD#6zdJ{+GgaeJliG&54LYq-0UNy~`efMd28 zQ>r+vZWPzsFo7_ixc-N-)s)aCB7(qMXWCS9UsXA~QaU zMeOdBMe0_B^Q7G*HB1UD7kMbaDiHJlnogU6NEf?<>37>l^ zA2VP2n*G*gM zC1&IYT-+sQWmvugi&Ls>b_N}(7G~o^LBtHCo)7a=vf9EUfS6E+#S#MpF5TWRfH#Q@?>cN@qHHO zpx|I<(SA{cF|*mMqgTuE*oK8b$l0(%_Flq{#D%=yiD5}{0u?jv#@h9dL(;v(1A{f6 zaPE^o9782*7ITd%n9)W4opRVpT}j9Z^h9A_Dkpk0Ea+kOFU}Qrd_EMeuU9!EBMUoM zP9i_V+P4+Tl8Hl1l>B19R0pT8cXbqz19|(hyZ|F)yMAW&ubAitgaB5>=-zwaS@N~P zQW+I>339Tl>@OIQYqC5r<}xxC@0l19A`F(SaFazbTnf^`G}U`l?=l0rOX;^Gb)TB& z?Rpyjcx4JhXC4h|0L*iD-{H&84Mt+mbw^CL&P)9JV8hNl5Kg6`BQ;kZK0bbXPnHaz zH<7ZvU;j~Oqi@7vDeCp^pfjm=q!yfE%x18kf?!5v@`Bbs;^&B-fH6%-)_%Cmy;Ajb z-R~|W1em7WhA`<#`v7sc^79v;;DAS>h>WGnd>ZPS*eS+xKIX}HWE9W31s@WMA|=1; zF}*ExdJLPJ3l_E`hU-W7YyTrEMf5C>*#M%~;bm_bZkQ+BFg+oX3~RTu8i7Ao?pk69 zfX3zfm*2ZS9n^ia{Mz)#)aHliYDG8_yt7XiYLX&Q1R31{MOVll!q#eF*(R09`0VGd zwE)MLGrOk+6*w%M)$x$j=PgWh+0zUkp0R-%Fk}RMIAKl60`5i0D3tR_7ple zgPrA`MEPF>Ts9L|QA_Ro4B``+ZO;C#<2L{EACh&H(wG_((~iE+h+rblc5 zvwxVX19ZAcrjdyO&(TSKA2m!&zU%R$&A}GbyyS1WTb-3D5w9$D&`rcEg?`3;7QpyO z#Xi>09Ey@S1}^vHmD*cRwsV_yvyTR?nLzeXqQ=l~GKV3oJjqjLtcl8Z>t{59n1d1K z+<7zs4veor5JZ8s^|ktafP3$)>O8@QddQqu{MA@p%;=zCE{_d1JM#N#{VUJoa8H^# z*mU%4;K%7z7{JVXpV|AS2?kAxCb^VyVZsO!OOLk(;qeJ!kg{feZp2J5zzHIM{?#v^ z1PX(RlY^}fsV_c_u}l)^0hd76F$eM&;}@enCSmrZIeET%lbKa0!yPe^6Bz*0@k3gG z202SX#``${*Y=tMK0wMvoTHvaU}mD+08!>N)6Yzs8Vvl~`(=4so3IHlyhVIGX%Mcz^K4<3e8BFOAr9|CB+`JW&JYMUVg%0uz!v^M9sQm3#ioXCCKA~us*fU=KUQVN zULcwHi))!M%_Oyhdam1H<10am0K03MNcIBBVFG6d*+(FeW*19eXJ4xh=K&L36HT-#ibCGbm?Lw3 zG&H(K8+jfVe!Gi@dhL+?dvUqVa-d)XZIp1HP4n6dFZBRO0ibvWZ|TKZ)LlTS!>=Vk zR)V=f^PPqcce~YbiX$gODFd6}n2i8T%Wj%W8I1K*+pLoE*Vo@3OM;1iYA*fPpaWT4 zX>HepM~UKD0CC&@rWJ>{{VMr|iWy9wvYPlIIuNEE*YF z8$Ic$@8vLV2#7-rfs@;tS-$BL8>L}yh=KsH@W9{|s@)DLw#l>p43^Nu3IjRDzD~$e zde|jZTH#H5_wX)+FFr=EEZsu@ufBVgqgq@Hdphvs*PR$u>8n=^HEjyte~R=9&Jpru z9FDKJ;FD~2G0&)dWlmE=b1AM@e^`Hvm5#nVn5jeUhO@uwSc=Xmg1SO*4K z65tc6b$cbF`AS`VE6az!K{TN1V730(Ywrfz-k&7BRzUI5ZO0*IWAHQ0-Nl5FPUSP% zYE)p0r3O3(&5h6WfrJ#;Ev4ea*K_HuLcAt2*msp&Pqb@nCY4zeEzk<|~5clyRa0r!7dCKAYJtoFe38h0gB zKBv7Cc-%)ppz+V$8tf?hwlnUbrSvBXN>N7Mv-f!Lhi?E=Im5PxZPd)Hciyp}!8=bl zo9|||_o-lgnmZ4k59P4}H6c20TGyeShlUu08dGB)jW->VQ!pYGd*Oil^>sK3Fp_&X zy=U@qUMhf=?P4;T6b8*u=)jfzvNl$49T_Xu2LtNW_i+z2!SpgmPcw562~5#`r`+9& z*Ci6#+m0BkI@UAGj3c&1)ETVt+)v9g1+s^$J71|HCJ$H+E_l_yr^yLBfMQJ8!iu6J zuZuOq9OHgOPZ;mfp`*eLZR3Ylaa1q#VO51g*H_%bx1PAHoa_~wbCZA(?9ntobZ`@H z42enYCXRs=pvHe;)N_4*%!+>B=%Y&3Nnl45GW8Oa9I~{WyvHj=AJi@vt`?NIHSues z`dI^3UKFQ9-09RL(RFwn1HHJ}oLTGLM}?aX zQOchRcxD2QwE?m2K-k-l1od#i^j}>6(T3Fz(e_UtQz`@OUN=>ysutuqyff>R41x%m zrd4P%vrW%>CYc3G!jiY7={fe*{?Mj=Z#_?Onl$KJvu?sW)6Pxz+*QXleRrL=&_WX# zjdZJnP}%pNLf}^vMfQ;2`;ceaW{+Bi_-<~HL?nn_`xjv{(_sTmo*u5(baOP9t<6jA z`YJq#SbhSH!Mcw3GDXPI{jLhZi~gJ(+9gaqDr=L>oYH9?wGzG6AAfu&2+A#aN^cLV z!jbas%5k)eba8a8=2`dCdkTrLVY~J&qn(oQV`x@Z0o$~1oCMv!c*pFivF5PCYK?oW z!cKn|Za1InyvN$i(m6gi^{?!|LJ+q!2Ii#n93Kro zA%T<+k#>1dHVXI^X+`uAJUv(}ocY)6Obz61SEW61Io{&|yQRyuyJNz`j26bNSB7MS zPY>Ca!>*wx$*i z1O3u9qGP8YGETNLD)O4lldz-8qvEeBH%@ka#9{+7{|NI% zZIbiKeabC6M1W!AHHQ&1KvX*Uy?ILw1qsrR7$Vj7u{)Jtv#tUz92VW`*mM$0YrpI- z=UpOElN@v~pTz@+Kio>kFM{m8m7H(TIBpX{M!03)4!iZKh%UtQh#}OIhalbj1e)PP11MR*dRi+pQ3l&Brvl{wczn4D@kc-hU3wSwbT-R9}bO z?}XbF(YYiMhSb(eju}DGgN|9(n#7>JzhNe<0N1B)H+&utU+Cd+An@Foj2jkiy=%-0 z&=)SvbtLU77bK)Y<>TiY&R2V?5I2K$o`e~5ryZZEOX>p>6oP`0@v$nAYB%Ra+>J~=xqK#Hi2>F$3XB%n*YWxm&2{!dQr_VVyrmY7oljeiE5fD zsB4_L)bTH;&8&ZiLQB3#T?t^v)p(&F#|hOcs&HwVhZSs$6zv_oR>KeiD(<<9ZC-U} zx9Xp&r4E0$xUchR;4=b{XjLV-{#Og2wD7V2^Y9eg9tK@$`0E_iLrWO?dn=~29bR-U z^iP5Aw&YbfK*nJ<*oogHO_{db9aP?0dj2GJ_IeAr9Imo5vv~VZ>R3(6BLYs2nwp?9 z@c)XOyZALBAs$kiXVHS2fkN8Ww)>k2C4IFuaS$>xtIcO}kzSM@5T`q-xd^$x;a#qh z4-YdCz?0e1jqP})dNnef^HAUHtmj0KmmOak+C*NH5Je|b2X1_92HLFg3(XjB-NV37w(WqxaP`I=kVGkqpIHUcqRZ#?Omv8-iH1KfYK)&WH|-mV~z0l!e%bo(A&AT zABCcD3Bl6--hxNs`XJ~e>&moV%B|W6SLFB3WeD&H_#Ej~_P4t3*;Vs@@~7h|!WITl zib{yJEAVtjMYPo@BR<=uCAX{n!u&G)Yvc(@7CN3LtDShxn(fN7xNwD0<-0s<7bTvf1D}#fs5I(MlU%z6pT9UJ~_eBtVmp zI*WuJ)j&y*tLd*Z6u3@gHG(-p|LG43mx|kG|n6YH?rT5eYpL0TcE$Hr})k1 z*BvHx%~knjFfj6tBC#WmSqlojnaLEGtqghJ3;w6vrts6|PQoqR)?e9ctW%>$+)Jvl zmT$fpbiiN8gXwGI{+o{xbY1c-j!kn0TxFCwJlzSosa_KOwd%%4XMvzgec2syA-LA1Bfu>K@RklgRhcQmGP{4$aENM&?bYd(=+1smZhnMWx3SA|2u z7qPas)2^K)#KScSHImCw2mLJTr;7tf**z$>M`=Swm2@6>KQ{heh@H^4t?!+s0RxXa zr|Wdz5Z{o=i;>#at1s((pS=7~4CPZ@sA}@p$?-R@u)IUzt&#=2(njMC%DujMobi5C z3uen${du|Sj|@Jzr8WSG$H#9;|FHibzTP@2>ZtqwJu{Sq7__7!As{JAGbRd158Vie zAl)@13Mdi^3_p$@ZzuQQkl9J3mmK-FBOvsL^3p^a(d zf~$n)ma*bL9tQJ|gE(Hjt;HwwUVGFrABX_VHW?T7M?-v>LfZ}v{QhOYvU|-Y!K&;G zfVh#@dPZo9v+o{$2_Jj+_BfelvzVj)nS~w&*xP6kiDE^8mP%V$HZ9rU)wHer_Z{(i zZ()QdVA*yT&x1&PrYoUd2A7IOz+g=**_%F6egVm6lNH}8CBFESNoG7LP$i(>Be9a! z3a+2?i`IN(OuGbcPeff8Cq(RB*kTUMiYebAYZ2h4P_loXVZWnpea=lJ0QX8};X5am z%CrEGk~-XGX9T7EI=bYB7yA4O#)oz=rt(f4_S`Bs%n;X#a^icQ^V>p(8pW_dfkDWS zJ{gej{P0(bq>BYD`OQ_>GjpvV`b#VCo{R8~3T-P(qjJ`k_5DW~bryqsc*T5#&dzAa zrd(`MI_)oc-Hm>OocCEK>*#HjW|w9A{pe5;rHS46xVt6z4}SuV&5nWoFAjjEeX*de zQ5u2hJFdy>_RtLf9`;LuwXR{qw+#iq?P86^MHOD5^$Uf$=UaqY{064Dan zBOUzHtC2t?&k0BzUG40hlwvr0JKufPT5qL&+05lwFULp{CIx}{HLD)0H#cVP1O|s0 zA)dB>`rCOtDHo!qTfs`dWg+D9ui_frcIm>~-2?4ka|Jc&%|->5E2$F>uPzidTa`Q( zBVb;g!2;B);A_KZX#q!C;MjYUl`sOZr@ho1m(?l5<-V@}aP4sRjmX=TYOW*|y|nxN z%iGxs0>?^Q!cnD6tj~@2dNr7&Dca{N{J&)a?IWTD_M3mU20lxw%s9`t$#U16zZNNR zl%utBcIK_!*A#5}0@7OvTYxXZ% zS0TgT zZo-LrJE|0uq*S;QCV?92i(Jk6=!L42sr$okc`K^IDnlC)lZseYFq#qSANru9L*OpE zE0cY7-(kF}+Fzz3JIPz^u0a8#1V`h(gb%cepkCqcXC=;(gCz0X!t^8#R*=-iDZR^k zUf=ajy^2as0Pbdc|C+2gCk0Ydq%TC@@}E(=kAZ*(hBsDA9Qz#a8q?)}b`fdpT&2vdH+EmqV#2Y)UVV#c1Bx#lK)+A=-*1>b5~1 z31{+Q?)B|+X=A8TzHgIr9H&lkMV%}DXj9$2)xu8MJ_=Cfsvi~T*;;DyGa}y`{_?U- z;1|pM_Lwos(ZD|6bV}YGUwaNXRKXlPsA+` zR^~A0^%IY$r07Fsw<27dL^O%6?1Ky`g~5wr{0!~x*V@h6KFY072L9e$^()Fl`!AUA z4`on9B#tSW!$f6kVDo|=?t`<))v>9Bix^1>!BgCw(K4#J3~5t8#$rC^3ZZdU zoavI4GvZGhF;DCgl(n@EyL4x#iufu_4~Qkbi)6r|)RyC@#ywMMCeJTU-Qc-r=rz{^ zKiSyCz)FMb@_$(3vL<{WCIW$duh+Dz&V^-~yQ-+OH&Xd6h~)Q5afgCz5Ll}4VPAIt z_=!kro3DIO4^5@H+G@Ez5p(zR^gr94Jkjs8q{CW-tfT7)6whrZ?bO!-uFo6SQ$L>H zoul`7WIga8uhO~@V6}aBWM;{Mu~Pd!j_z_ARW`MYrK}B(p%mYkq&<)~>!bJUwKF|; zp@r4fie9kUxuYsV(b2@(@$MKq;%4c@aH(SN1{EeI(z-BBkWK>BLE4e4_xfb9o*Xgh zIA(*%99Z+N&a3tg*8DW;P{1AuTAQu&eTCJEFe9>^PuW%YdjVzBe76^w4(uNFYEju6 zB4zC346E-wc-CjwYNyQA2@p^fvwD-sudKWs{& z8uA;Zl3FVz)lE3J6Jj?JkJ&~3mMTbOdL*TDOr?v*hTyloY5;6({T{U|*k3Zzf3ttC zlxANK9!KBeVKtGmxf-Ae=nt4}c7oBiU zFrAGCfsE(4I0b)2sEyf|j6u!L^*0Fl$(lZ4s5hHoLfst`>;1wmk=A@|N#b78bEZ!M ztL={#bP?N0J2S|4CH)6`UCO2TL2g_mG7&kUU(0X$)J>UH6TZnDs8I%7Gk*9C5t#bV zH|oV2|0!6-+;6DvmZw79OyMgrP$9(E2ty8!F(v5HEOSk}%PFzs{xc7?*y8X{`Lsdr z&pVZ{8QyvR+*V(a``2w=RpRzXBFABMIP%p`_hCdGeiio7g*^| zFJ`Qe-qlD`vs+2a+?JF$@)+HwB27~ju>B%%0~t$sB>*>A{)8LohZ!`=NB+ibF-r(V z9*LYHHE#0T;N_u82lL;(r=Ghwu5hCKCUX!M*Gqf@knqPkl^mzkDBny z-6KId%6Zon9l%qmq9ca2;<-{x-Q&|2M1{uwa;Xt`}yFIi45H>^`^1I>Hd}x5Iqus4wJ`1&l>`&ub&ENY z<{|-~XAhyK)@^lpZ&axm!?wxt822j5exF;wFknEs8sD9k8(%5DF4p;=G!&V8EAyIa zSY%*fPi$#BzWQE&Wzi~Z6xSK%-nqlkosiKXUK+XRd5-*o0oE38c_>+v+SohL!7fIL z{0m!Fn-QX}I!5X0?bSAX>QUo$J`w>0;Fx!1!n580-ho^LVFj7k61+P7sHAJ!Bj z9s{h8!AxuagKx$tE>?zqw0YDJZNTa3p*+?+aDJ8_WC!Z478nZ85B5-M<7y5~ zgsyO*RsHshzp>@)3GSZZ_xPFG^|ilrOx!gyknOI ze4ZU0ny-es2pL!~(5-ztxmwdN{h>nQ!b(=+(@M(J^;wSH;a;fG30x4HH#JMQS5odr z0QUWRepr$N-SF%HpYZ0U@1gx4NaK=tZGQ;M%RDbWbY%C%H!B?$B0U}IiI%*N7-xMZ z1^JvOU65FO&B4Mcu&<~7lK{ZsQziHvXj@JPULEH}d9vBbp?dzu6)pd)dwYU$iyqjOCs$Hr=x znBTYdwVYV@4)N*q7ZT}jnuJNU)5W}Lrw#>!E_&TJx=pY*(SEpzGxkY>&O-)$iO=I* zz;5*}?dpR&FS{v8pb`ZGvssPuHwubd*YUalO`!eL7p+$)xH>9@u#qy>MyeEJ1gxvx z4aZc8E6ILWXBcX|p8CvFM5XHGy=igZ@FRlqi!Mz9vBXh-(Z0P@)6K+cvhjJ9s{ShCQD5ZcaS4r@PgU%^ zK2`6wW`0(dZ(5`Gsl8c2oz~nrGYuS5g)HvMw=w>TGl-j#B)uy}xA(JMQ5DJzixXC& ztCf>kKXyHTV_pr$*D(0&?(TWU$W4E0;TIkfV2QvV>ut-69TlvX_wisAZ3&$0DT>6k zuR>|#m6mNw_n)WrNY|SUP7Sjx_K$3J)4D&71ATj0Gl?0bxl%LA7jIg)7h}qiqK*c( z{E23!1_WpA*apr{cwIL_6A3$pD^N0yIwq^VUk2dqj?>9N#-Dkb(eiAJeKMO^}WUZps><79(JmEe^K2S47m8bEE2No=wZ1g2 zx=sN_7kydjgM};J{Ogam&}gh+I9(7DvF^QH#P=nd=;2rBfoQY-W|Gz^b=unOOw)KP15}+>&PY$SzC#hUnSnQ$ zaW5;J;i=e^!uB~#CaV1QmBmbVGd*N*(0i2<8|e2+_}!;lZR zlM|kMT@Mwnbzh>Bf!TNqskf+XZJ;T#mN7@g&ybajc0@qw5`StCzPp$Wr5g-|!LW0_tSzY{FhSvRSxd(|&pE)XsdA4W3@0VW_Nd@>m zy)FOZdgPbjk(ky?+2;0f^Ib=K9t$N-XZFRv^*QfnZ30|W2U=mN{qL>!o?GJk*7MG) zs3#Bie$c5L^NPM`v+{mIU*9nBLkw@B^rEr1U4_|ll-mc++)D}qYc!&wR?nm4{vk8!rOWr(wnE2rPaWNaQ<(R=okv?h6nC+*EQ)<-EG z?S*ah-xidls{f8HBE9uRs3A_G+3Jw^#$)xfTc3OALu?QaubSc8H52vthmD40zobG{ z$QXQLb}*o>ateiqP)Kc)0?eLCwwo;$j4 z`m5!BlTGZ)Uk~h@+XSi|8ofQ|Z;Hwu{_(iS3&~x z5puuSJgWTf(FR>8BS%@_JsqC5H0sNJqVGZ93n7};Bz`dV$v@w>iL1f*9xXt zRGHcgwe{*#DZJ%Y-k`G?L#dObpq_cJfqphyY?zOZsq7<%2L=LX^O_wQ41CYIqoS96 z{UcmL4(tE2Ty4w2K%veU0(bXj0c|`0_VSxrwZn_Bdh545ASfTd+2Z%aq_8E=;EU@W z?oG~ka^}>fcH8jF<1WVicK*Gv?A_m&21^qR1F*h&uPr9M)g6bd>`{4gZ+|a5NzH`j z^&@t_qTQ?3`}IBy+0JE(iA1{%kC3|ux7NNIg6z4G#-L^6xDWV{=&N=^hM&Y3iYK$% z>P29b6wQn5>NImN$)CXPc40h@Y;AL}y%ddh)yF1j6%zM`5hY-_IoH$9$8p~m0gP6X z*@sze6S*CI1g<2WOP(E*AWq1+BBhLy`_~WQS`WT${i*RHcDv)PEdvZplmUm6a*pcLq?(6pu10o*F2{%Ay@9L z6BngI=oh|PUu_I)k0SD=orf=wrmoCZM_=&Vx<>?Kzspx%tqAs^s`7Q_vnh(oJATH~ zF}q7>IO&nOH!*2Rx@}$Wxi}Q2pJVBrUiGat%t1-f?oM#WlDiM0L)G&xl-fEXIm8+x zPT^wjKfXG;r~F|tzeYx3}T$hV1v3fDa)Qi0rzTW>CoHI8`EaNI1w>g(_nj4O{YV3dNUmtN9>xYi+@WJ|ox+7di>u<4~I zUAS;*;o7jt$16!$7Fh0&eC1#-x^Ym2YskO5&`s|>tk2UK6>`5>Hum5=KS5J6Mc;35 z`>ych`Y(3{Eg7?96K`4Dv|ReiA|&=)zg)YKCC&7DDT797T)qwL^3^W-6xo=3G1hl@ zpYh$e?Y)YdSK73ybV2KPrUj`pX>C^m2QnM`n%Qfo|75m5WhcHM;jJ-}QBsifJ1o*w z@+@Hlf08cXwDcOr9)cuC{VQd?_+L;gClPpd$j5ATQ|&ql*tt?OEJ&TpU%;vh z`|iudYVtT{R{{z>sxBwJuFcak{oPx6tvzpV2EG2L>+^M3)J*eW42yRvkDXjDK7OH) zFZT^Szb=(xHgEiGtIEAD>BC;|5zg2~$CMQY*gj+zQ= zD%_!3iQ6N5St<>uMNwcpiMD;&nF{EW0QoK>c`*Lg*Du(%;kEgzFC9^NU3i;M8alZ8 zgnRVP>=#77vuMkkDJ1t-$bM)$V93wF+9WkQ)0*bDXQ6BrP8Z*Kk6+C7xYu%Fu+*Is z-1_8|k^TtXAFp5rIW|3F+5_}Ts;}*@0Q6FCS7_P1{_?M@+`Kl)Lo&X0wj)MXN1YWV zVF%8(io!R=43(0}2YxjH!t=tTyf?;Vz&+%XWZk0uHjxV7{LoY!n8%D1rM?d;%I=FB z$mAs$q&bIC4%()1T+b}l=4Z3r$eZkRF=ZOe{NQL`@V&Bl;4%A!qD$2x^@sYq^4ffQ zffrUBn*6fkxJn?9m!VQgFUhd6G#m7sYiA$tp$m+_sMz-DQQRl{Bw-P=^7mi60~M`6 zEu#t2!sj%=9$t{IRk#6lPA*I+AmmoKCKIwg)XeV z{-C6ACVF%i(^C^J`_JK~ZA!X_bMiBR3@4oXi{{asfa*x5x1oj+ecb(LpISTO2f0Mf z@AK!Vqiz1(DV+DTi|K^fqK>Rc2cfBqLIQodtK^~Erbxl5T(%MFqYG;0+}eS6i#`?4 zMBcIcw1(c#Gi%Yxohk)&(KDe_&lUJhiiF9Ip-g`1r`W_J^#kIfw}QKI{yL}s3wwnV zz&C_uzu;?=D7=KYar4{0L0h+i%3M{in09Z+@77SJ>DK&P{X|@!-c7_a5UaIa5m(XK zKPG4^S9UWqZJS;5D0)ZFs!WiR`sviBUPt~@?;PzEhPtk@=3%4KHooTu9h!X*sMw`P z8y+SzFr<^okbMz_{jtbqAb-K~Drf9Ke1qygR1gV4k3H$I>)cf!L2A~2px)kW&HYkP$l;p30K4dob)o=&cq$w#A}PyYuM&}o6y%FceIt;WJSRW<$K$bCOr{U! zj?fQ}g|`Dy_VwX_xpSwoejuEsGVz(|iC`GNu=T@Ki{HJjrb&K>{B&Pt0V}D~e5KVnf~BPY=Gb zao1Jn5={*5qMxUl(`rsF_8ZZ&=1=2MlILg?YRL)sCS%&?*zB2g9UzZt{N8(QLm1Zt zPVM8T*qU7CTv8R=(_M76;j?;cGYWKS8W{mIUsiopA08F{ETJ`U;$i8Eo)gWKa|)eZ zHD@=s{)xXCq6ElNAya@w=0wYXGd>@pc7{T(F&ozfZK=q*3F{kgkaLS;FbNE`Pj^MJ8#XorB@=FPW37c zwn@$F9n5wipfaZ-@7um+zjkR=tQ8@L~ZTjj%`e%h6n*HfswT`7{!oIJuu3|Ix^% zqO|md&Uj*0y_@If$l2w+(^b&_<~SvE*DwL+#46Xa2Y_lGc26t%ezao6v4s4aux*zL zi4W_p@$_gNm&FI}u4N(JQucFe?kRnP$uMsMkD*!C2D|3r26NjXLtDYU3*!U5#;cir z1%eUwrKIUkQ?j0k1Vs4Q4qeztt>&eSi?i7(`59g`b47v|mix;q|OUo;BhR0Lc29F56Z4@I(_R*Z2X|neSQ)1}6kUZeR>fI`tf_XKn7jvZo=_-i8 zokgIw{Q{lbZy62hfwc5PbW4QzRp0%-l;tCnt#rj8kUIPd+E?f0it{U%mtx0o zT!HXPIRLq5e=lGPm8*+GvY)SBeU;X?M|4_;sVSo+9Qz2JX`seN4dSdfYyF?EK%bv$<&R{{4IfRn%=^<*CKk8sp8-V$Nx^499{&_kU5d zn}-&xrtQst`f!pVwXc6_U_pXcdy<{K|or0AZPnysXNs(B}CPeHq+Sm2QK+%&ZWOUd{hF@UyyVeWS@0_(nHj*dV}+I z)N7o?y+)VkKR9s~w8pNe^yu8llsrj4e&+Vr?7fOzPc%wJN7U}zJuQJ+?K zmN9b*b)B#JBcCCNNe!zRx_w<|PDSEKJ3H_}@~}^x(@cixzPZk2-NeR^A8U55BjGwl zvrHW=;%id|0}tkHvwI~&7JDS6Gu@gMBDb%w7)&g`sSVBW*k0f$6{l#)kiq;GsR{f`I;gvL#kp;%k*7kO5i2-{Hd3e(yd)AiE?ZXG!(&f72 zUEf!-6~u{+6yvV)@I)zXpfHU~!=@cU701dlDNwPWfN|F&evSJzriKN{9}C2<;u-$w zoeoJL6@>jE=C69AP(b;9vOw~udy8+rY5&n}W)Axu!|MaZlZY8TuBf2RZ^g%bna2Z) z*+?u;u|lL*g(!1eQvez4>J!!FXvWy&=?mJXZVt|(&+#3p&xyqfnqiwm$GeDQ_AS$W zwQwmfa(w-L~r>I?pU>pd1fY7wi#0(j>B3XT?2nqbJvaLc>+JA=3Js zeOJ3qmYTtWLr!MzigmNbRYM@dl?G6UnSv7aV+Yxp9;| zm&RLPrdy{c95zXxaM;Af+oNHg4XgGzMY46XwR_q)Sjp}YXrTqdl71R=bHCXPt;h11 zXFq3-ec2aVMMgo?$D6sYi@lTuo2V?7%E=8c4Xn%o_L1_VoyCRt=v@O6&&d`9z)q|nOA35m;8 zKsYB{#>v-g;a$dVaDRowe&^=cu9O!qjHk;y*YzB;+cJH_*rAw{}KU0O92Y^ zGiy_oQ#yZM42e~#xn{f{wE!jPDg7|NtIc9X7|8VSH={cUzx5^QmmbUB7W1Z{P!mHM zC_WZ`6ho>a7xsBrL3ragOPr?clqiE3dutG~bPxf>7LM-GKecM<(api->< zkRYKD%+Gup%Pez{`0S8jD8E~QN!;tzKP z0(YPIT!gJxAT4p-i*PkJJLj`UhwH4Mc4-s}%W1TG+G|V?US^eGay;J$FSEEmP282* z5@1XwklG`#k)#c{qQ(fpWIW%Rrhs8l2m0v+!<@d*=JOM3z9#Q7c=r;T)^5~0X0g%a zooSZ9aH#+cq*Nst3T_h5Gmq!j7V*wG?Jw0L8T}BkwzQ4tT8MGW^%iPCxdzW_NDad00-BCO-O^q#d$qF^_8FMIen~DOA+Xm>Vm6e0^nFsvG8NW)k~q_p z@y**9cCp?TTw^cit%rvr4wx&|B9Zk7=SN{9=?T}tIR1{NPP=1eeI{#|RRmKn@aGDqL=nvr5&NWJB`Ze*x21E=CAG`-;N65LN=HGfi7YDmY9$&36{H5>8Z`87}HV3e}1uQ{VszPN_&lEirz!QHP zjvrU!yoTk+l!Ut2&SjF_|Zov`)lIu6+Z4fszA4$ZfU;C1fQnd55;Q9Xx-g)dTK~ZPi481cUk*M!YzZw zF|BJa51vcqrS{u4>a@$ML($`G)9OTRz$!?iHoAnWQ|THw*7u52v|e-bRD`K2G3#B{ zwx4O^qSSmbsp1Dd?+rn$><0laHpF1$27I!YLa!QS2K&#kw6;cnZ-s_1KHx$bHjaZt z72>lEl>1hflv4buxMqptPqROD19E>7D`=NgyejLn1j`j~hot#RfHNjY=_zuVHshU_TD9tYB z&NjJ}{=?-+ksf>ATh~wcT(%Rq`E0erPjF_a_`J6_8XsLgKcH`46qmUO#|L? zr@Jij(CjL?|9ozihos6smntdSA6zbxg8Kp$=MCrteaCW_=^e??Yv{R0CkOxgdD!x+ zR|wk2fP)>3?|bA&hYZf=Q0nxGUlS17KgEyweYhiY($^4~w7R2rVv>EiIk6U0Xr&s> zgxH#`(;8!ls}kR%j5r0jkQv5b_R&i(bygDXz97l=R$5yU!@ND6Wz~ZYrRUZ&UXqg` zYG^ckVp5T??Rr$kuq1a{+hJDhcNl$l^2{qA-nb+kpCkIbuBE>%KL7VF3-w{>G6mND zZF~L|;r!K@C`ASTt@TEHR#2L9+wq?&9;N_E-y9>Xi{H+H?6VaA#TIcHzo zyEOE0O@-tYRp6B>n%TB@uM*7CsF`%kVY5+>EQUSwD6gkG5g*j(;>f_GRcev1s}?j0 z37cbjvndrcpy+;JVfgC7;VvxA#(8E*_I>DS`lsZn$g|yPCFM1(`4Dfvap*Sg?oVor zF;V_o-};Iap>kRA(L;CM^0yR(RxZ5;MJl(SK2M%;F=r2cC3T^-#g6$20Vno*`vP0c z2yB;&eLH2D{orF0<&QCGA|h?!SxIg+q;ZJ4{o1#J#`lr!iG3zJu>v zd5{Cl?<9Vj>Pj3m|a4{BG6;kQ#K^@S+6FW*&0I8f@ zDYZpGoKri(gEgRS>F0{p$+N(aRvj{H4qk_%$MZK@rM~a=B zm7YcE;g5j-{4HEls~Z`Bys7LxL4aLvsrf+160ZCAv+Nyc`%tIsP8JU+fEJ4E#Dk zn&qgrx~BjYWLEj14`4ATx*0QlPTjYcCCsdK!DQacBNZn-#2J;EIIhHg`I~qO6IIHG zH*4c}5~Xql(Gjr& znj`v&sfrjvqfh+ratOQ6;5XhMXY-G}Yp-KEr2u&q?o{ss5Y&LangkRSs{+)b8ilBg zr=*!k@JCZ5P~9QX0A%<`eFc>%)fJsUB9HBZAY^oll>JAEOGxnev6Yhk3s1S{cw*Fo z1o7EZ*fDX&EMR-J9_pJVhsVvm=Fg;K!mQk`zxk7kRmW1e?J^ODdEQ~~qCR9YY{e=P(C zD~?Agj_RM+K#6V|!~P4a26gk#Q=}jHvY9iXjunHbZ zu-$FOSHU!~SPsbCll!E0d|J&wcv62k|3alP+8T97Rr-PT*U(fDOMt8cv!{mr;?t9~ zR&UH^?p!~Fk*D{eBsEq5BSHe^Z0U1bzf_h$uP10^t)aII8Iv{k{J1sS?PX$Mammp-wYZrNT zl0A8nd~Ec!G}kcml6g?RXz}H@G%cg#U=1b_YRUp2>A{+Hdb&L@nPPuQf(&dy5pDq> z|D$&yXIibU-G<&~u|OS@Nh;)~Mu zdP`c1%D?BH;4Nwg(~b;wi;5V9gCmnSRJXMMI7FgZo|ahdrTAR@+IWnPlR-b>w=%G@ zTgEK&U?bbQ280tTeVg>i8^w6-dJ%Qn)KNx$0?p%YF`8{VMDAoJ@cH{_h^5BN86{S} zhZd{|)a;)OH8Ys~0(A_5rEIsUL2M1=*{Nkcq?NuAUql|b z#D_aP@`Nwp5MBLAcGb=UxEFfg9h3`+H)*KM$Tt*%>PHG7Ra;w_&_$QBm{Ht92Jr@D z`MBO7D~~JR&qXbs$G#_)MjG&dx_Glo^egI4dxhb!(*JcyWeEm4Kn}tXED#zQKSHBd zo0Nc$TPhmuArpReW-_yUi{<15e_t#dn#82rgNRF{*c!W@Q?m8$kE_Jz@ghCZJ=WuhewPde-=@d8Noz~k;?d70K`VY)|8z43Ka&nK@Z8Sv8IO3_8#XgrPW)SDo^rZzB#KQ0L zJ2*VrvKrY%GpB`ukF;y3hE*7&OEH4aun|b7&+)XD2Fz^PGa?H5r8BpWdpl31-ZCux zkr%idPXoR>Ge!2P*a^6OGQKz)dFpooWMrv`1ac_eMO5*^&|(Ky*=CUm9@fJ}W{&mTk2pP@fwAe=Z2F!i|K(KYm5+%Gsf`3)) zW#))%%Q0Ad{2jWgmg=6^b*&O!T4A)uhrv3$w>jLbv`vU^98Q%$6VgvG5zrkS6^1AH zHKHe$m8tW6E}o>A<;dVmNjWkN_@+e|{l&!f@T1IT=k=r;RzVFdEEsGj=N+Ob0vsX$ z1aBV6QaV?P+dNE+MDKH5^Eult%>ZFLN>z-?K5d(74@?3+=pCDw@PhGMBhn-wd(Go&4@;wSI6Sji8tlj; zPRF-3XfzR__f9VNxl2GmS#9xgEI}0M~^@}=&w~q zfxB-+>!_=L61)<$)4{#BoR!m*_B{^2bNK=`WCAE*2=?DK*Kc@2;fjpsd6>TSQn%xA zoQvsp4vL%r*zLk?gCXqb448ZA{QFJg)bztu*CN5TB?uS55wpX;$XIS`^GeHn6Tfhe z+pHw~3+$}Sz(Wcx3Sc1 zb{T%hnBXx+0^B>V4n`in_^4++h9d!v)PT9{fi>Q|?iqqtF!@I9J#i0z1e$<_zJ(rQ zQhYXK1HVy4s!NZQh4Cm8e&w?45Es~&3KYldMRk&5lJJPu zOs0Y+@a?m12?cQAW*t`*2BiQ3mUC1c*C6v+BAB+Jro^;)ih&___Kp&}2>QmD=RXtv zulismio#qF>UlS^o`SsI^C)XFELmOpDM%QE4o3*s3S>6nDd4c3T-m3*oHAzbV9dA$ zL+JS2%z8FyZ!+)`Id1+XueJy)q!CKj<9q#%^_@p7=D6n308qu=Z>0P(c#IaDf*&bu zv4?@Mt5r*b8;Dv7|DujrBtUS?R{|dPKMuIRLjVNeBf$oXsbBhZj!e9<3JJVO-338S zx61|j0swb198 z)Po;PGRgEp2C@o};2O_SIGY$UNN4CmY5t4y4I?&kI!xgj0(^n@@0@9wcm#LJPid9i z*f{y7sPoB>2W$@^+K1INH{JbRB1a76b(?61%T(jT{8%qq*!e!BlxyfXm)D_4Jc>9? z)j1@lYolP~jC9W!Lkw#}B-)(gH@IeEFPbi(cLX!OPp{L0H&-LDKm`46 zN0N*e22OP5Lhv?>2azXqB83LZvuQu-ZSwx}`XQG%%x+^50b+tK7yz3bQIB7E<*^oh z>`uBhko>;HQr2s6Da!SF_ zFLPJdPdug~2j(>SHe21-c^_Upr4i{qtJRpVtZgP^otb%fm(Ba+Zd$R}EC9N81z-DaKjH@(C>mxN9%$|Xg??}=2*SG=X zE3?cH>8Sxj^=dDEMu)ntb?hpHl*69sf2pnnX*hnQ`Oj70c>0eF0uFHaqXswQS|fz} zzYf=v7gvhF8UiFxkVE>p`p=CHnLoRjMRB0IFJD5-HaYn>FgvNgTMU7;nyqoUHEyV#;<0(kbqDDm{l5?Dek51MV znKB19VIUfbZAW4~VH%lUV~CCnUXo=7^MDh}Lk+)|s)95?davR?64;i*(}AuiB)6> zC_=PHeqK(3H4q!KacfP@jA*&waF=X7Mr`wWYywHF91AgazhmeJDKl`k2Y=f3Mwp=a z8z6t5uS=ks{b2^Zly+Jx`CLNxJA}qAH%McIq17z$#Qh)uOqX%l-gCWm{FBmIp06(W z&YMQZ`{HR5xF3-chzkx4gnCsv@D=}> z4iO=a{Dp+C>BM;?QDaUX_nEktjQ0CUo_<`s5Fn-S&aq^izVa-u>=OwbF9lB-(&Ykh zz!gylA%|&G5v;Dok>$kFAypJkFk{q)Jk_J`qsdcJhuuk%~d{+*Wtaf2mM3BE&RrN!Lu5m z?#)G5gic|lS8S0wqs&S5zF0P{`gA88)Z0s*Xbu@wkgUP7!VIUQQIhBgT0=LWXp5PJ z-gv;40n81aRaXsq)5$S=)4-~}(gOWY47P6j3LI)mpDYfWuN2?~1>p{Y{N4WE^c29qeQ@Wdj%drS_>l8xS7;pxZIH%}Drdg6Kp>pl0@<|}^w`Qz ztOc$u8^YB?1wJs2JXX33oelyld}?_S)PEXa_156+&YYbgr|$@kU2Q}{ciQOieNH;O>vNJFj2 zso0y7VN3XN&Qe|(z;Y6(;v3F))KQ5Z>P3-3FFf$2Xm=CND*5}ovQQoMr;}Vn?DM)* ztPDM-{M^}bZ-DX#HX(j-;5_-)hkSL=RUTo~rEQ^1=DbqMhPHJ4;uyR2=OASJPDR#_ zeowgOv1cIB-0rzSU%-EMxLVQw!|W^(QeVz=JiEIBW@EooogE%lH$#l1(_|Fd1yO>p zw#pVgCrcGx@8qijV7#Bm7I+{w0Bi}*`(@y7WEd^{@>!)m20S+iy*aFaz-FD<*$G90 z+9Ut)W8(g-87&+kFx7d(a%Z28{GBo2n)z|Bti7=Hh~re~9pN)0enwpgIFF2>x2;E= z45+@E7w60Q(a50mNRb26o(-aC>pb2Gd)q1I0d=22qhQ3!2&MDoDJcZO^W<I8}pF{^fD~t3|lbMWSsc76gk%P2vL=(~2%coeo zA^rFfC0x62Eg~IX~g?to1V3E%v5Bi7J+4+6n-Bj{pGn$Iw!Javj3UfuQL$;{_JNH;o zBdvTVo*nGgw~{xns$g!By4$^S+=U8Vy_NUpo_MxxFK8wLO9X(9UVN$r$)3 z4ELTma|mpv0cz#@4HV|H_;tEU2#cEy2v{6Cd25icBo3sGPs0pgW$VsC1i)7B4BuOk z{f{AX0jy1+qDI|Md|3$Btu5lQ1g(-;d{dW#AMqRE!Qdy{}jV*#G^sRYj{; zz6IErpSYM4+V%f_4tq|+gT+#L+pq^T+y8#*Y)qT@Mt&cF@fUAi#H`5iIoSxKj9P?<@1l7l1n z%hXio{`4&FF2%sDi*drr?7#m6{;2{Edr1C2ZsIhPq6LL5a%1JAQu{ng;ADckJ+R{Mr)Do2Yw{Lw55CWVW3J3h~ z6`3#KODo_D2{CasI@8t`5jPoPiTIC2o&0X{RRv>JjQ|_4Gi0+O^FIavza)X5j&ZyU z#xJ|fOba2B%1G1L5C+J1Mo0wv3X_??%U*viVf)GAfhMw#+6k~pHxYLA146GjR^n$JR~&eq3NVni16KMzxCRYsXAtI( ztSD;Pl_7Q6q7s}ChehYAqE_!lE#*xpKbw`0-KJsO@0i8^CYD7Z;v@@~6FLz4XYyf% zNVT7Urh~dPZ00YdQbQOTx2ZFk+*y*^2`b+>*ls zQxG40vu>{t`#e0DqyWhxL`HRR4m^4+0NZFPz8d2&uB93oW!q~9O=w%pf71h?djol~ zP{06fzxw2nKk`4e_QH3?IwW!dVMoN|K@=_)>Ha<}$jZA2SLfD1V@xI>$;?)1XI<9$ zr>$`c654HTX_aKaoLcw!)*ZHn3Sw~tdX`~XnJLd`MGk@5s8k#EV{UVOR#6S~nXZ3- zQXwWx+F>h>HUHOcgHJ<}oTfkX>RRvH_8O~_roNG&2avrT2Rj=r&i6+F<>;-PfE-g4 zt_js~dA~0q3K>ENVHD}77n`xrN6cFVL@c{H@i}0=GG-w7*k4$TtGkzR;+AWY=+Nbg}Qioq3H{}_h*>6bN>Gy(F`L|&@8 zj5BaxA6^?4AU(1uIQDhD|4MYKirpUZ29Kt(7OELTwpZMpU`(4;+}YUeBn zVQS%iRfc#h>xSSYCGNnC=m!HUHPHDc$G;SKHm#tnM#f7fm(rf8u zDAkIbJ_uV~Djo7G#y|cLGegCjz=4Q6ix12c$jW(d=x}qCrvHQXIE}iLq*|oV`?1PN z4axsZ=B(6TG?XB4AagsL>hs^Y?^oUsr#-zP2?dU@AA!B}P-sKt5C8ip0!Jgfpn14Z(m^+a2HRH=0Hd*>Y!7c(N3V@lkiqA3PX-rLNSZ`Ya z2F;BBT5^c9b%6;avcH9l@4DUcr$X)CHdxl-IphHi(aP@Z+V{aHD{PwHrtkUTFxOvF z;IMIsquZokKq8N0#^(Wj1-!%#mc=X|ivn|s-HZJXj^y|t`I`d*KS}|qp|K{#M4$CQ zo|enwPkxRe)s z*=V=-zlSW_i);aN1nvaY{>+s6bAecd^S zzfMV;{<#>-T`>VjeRjpY_bhRKnYsWZdpUY8P2l6}Gb*pe@up;D1@-)C0OY0e-_vgr zcl~?Hz)GxnU$SWv3hW#B?k7)im#TH;3gLpXT|=MFyi)%$k`kT^$>FECiKdT@03wmE zbiGTfH@uA4WjIWdPeZAOe{q7jn=%0yEJ)nUP4U=xvgM1rXXbG|$~{=pbRU%z{}tOU z!XA&U{H= z9H&fA-sbnwrc2W-9x8h}0&rqNKy_3R%<&BR4V$$#y=D3Q<+e*kHf~p5`0uqjy(jyw z!74vSlk@%c{u8{m=^Ed3&h~_d1n-qKxnxquekT$w^&k70F6neB-q^-E6=9AVcIqvp zb{Yd2@XN>X!s^OLfi60EqbjV4u2{a>!^uq*2Xca7cXx~;NQHq{HWkpb#|_S(Ior?nK-1Ng zy(jf5d(yooU!3;403*!bY>d7%brFdb!U^wCzQu29|8ycsSP_o-q>%g)@FwW_LjoWP zOLq=X*j83F8si2}KbV=05|5nDQZ;Lvdafa}Ztt-?;nnUTq8w7CFBO>#%NhE_t&S2= z>{!Bn5&X?pLMgQA;QIB-l$&3}vPt*xA^+%H5CTCFAio^T6lJHZtL6t!V3=nNlV{)Q zwpqa#zF?UXYhT~&QIEsl|8YV9)9DwzorNS(K{>t3)UldAW~sDyi^gsHbvo}dq!7V^ zxDa$!54!Z&{*V(q=09fef)cz{cXzpj@rL%7z^Xt4B=V~p4 ze&m)2<~J$n6TLUQL1jc$d?%j+Wb-Rng!EH!0$2CSuGvx5lvd;R8+6A{=g2u5*S3$cS8 z5LKQ(URdRPJMT>4@!}grV=l{(RuR+I(vuV$f_WReOY)ppoj%_^usH;CNI?tAm=;sAiLU9UuyYfm1 z<8u^U&Jh7FZNx$2yft$1xubGcFtr9;0$slZi#abSAZ7$^9L12N*l7r<{SUp( zfPbc06SSfNA6^j;A)tY3K}Q^^oc(bEX^u(+Uzj5X@L;LB6{i;N92G0I!50X9nEH=C~`u-ALjFN|Uhdc!1_e!^~j zLm8b_Qx9appIoD(AgkoobwSO~9LkMw?i*b(`+x61BnA;eP63?VyV7!bv;&xb?;3pJ zHf5(jfd8LWHh4t(?|*LsVd_r9YqwMZ$a3%qi{9ETWI*<8wn=r5ySw|e&XFKF)s?li zi16Ux4>~Fjqd2w?Uf0sr!+wmt&8#k{;C*e3-|)U}2prBnAN|x5XU8r+{P@fBeXzO6 zZRa{o4fUPa&HV}Ra??`|RK|K0YyhC;*k1#!(|Q*bEoqA!_^yZ!tCIWNv+EB(*B z4mOoyFmu4~eyS7oT3!*PT7(znwuY#>>ejmQ(hTn1bzQmKej#G(3-D$IoS%3ND=+rk z%0S;s-1;jxTbvKA)a0X3lO8DW-E-kYg&`z`XNeq+JSc6o%1rzlM~?)UD%hC{VNmre z4EX53JdSrx!_slH#eLz4bv6jSxg=(7aq^3UYxMk3)6CLTceNACW9eZ}PIOOtjaFOz{Q238e@=2{ zx#R6duhwF?mY$%dKt1P}@*vz^XF~ilOlfP2#0}mgcjm)*AQd_&voq=B=+Eirj#zUc zHgEV*dyibTaM|Ad!a!LZ?@UKY0>2gC0=FhXU{1;&g79U_@_T9iW5zN#z?54zLpMA} z*zmz;`kU0NtAcb$>J};vY^=Guz?tp&QYDK4=S2p;JClYM+5D z|9x3qhX35{i1+hD+Mv`%oL-}&z36_6JqTlap9vcV8_T_cDGN_MdKWAh7F#mon9MIe z&JY25yj%wbKv=(%wjctumwTL!4A;0VT>xF<$n{8aGnu@SF%;#Nb~L@=*}ET6Dj0Bl zT{dIn1)%?NYK%DkkfgV)*P%6Vt;uDI?U>$=`6&){76Tsr1WuKDeXq7hv!QET_hDD# z>}rh&$m-4XIx%hpi!ye3ooH(Nyr@F4a9?vtAH&3F{#Rr2PCUwwfn%8&KeXa$suia5DK_HQ6)VshRLf5!?TtY&2PuWrF2 zD}cYhvee9CHhJdlCa@26jU=*636rCl4YCA>{fSm)x;h8^( z66v}u<0ZfA4YQe>5Hpq*iZa6+I3QrqZggd!P^u-a?qdX*3IknV`a60D!*hGOEKQf6 zgy%%CK14%kX@s6so>U`Jv!^|M;Z&c=Hi4nCv3q-2FDeHj>Q29!EPWdTF}C-ImsD9X z`VMJ?b#iO$so>P2^{oc>)CkgnkDW>#L+GIp{{ysK;H((=-<@4+zW@duOTFNZp_Xpi z?cqoioVY^fi}ef}(>gh9K17KQml#~l@^MAePZBk%?=ww+7LIZ@`**rx*wsvC$t~Kk zscBOkeCgjmZ$bokqg<+~dQk&;^Cn9zoQnPX6-iWh^*;MP+%4l(U-6F@lX$J|+;b-c z-85okB6Hoj3)0?^u_QIeOc1|*``v5?pszxvJ?7zCNilEQ;R_Oc5u`*R!C$~QhYLAa z>*H*q&jI%9-D6-ppS1bD{cA++{@59f`a8`U2gilsV0A;^7GV#nNJk}$vb<=b6-j8O z|4w1%w2j;lGMCR#D?s3Z_`a+fR~1Q7am>CbJpZ4R2l(=Pon7x|G_){?on zdm<`Vo0qFnatliW*FEcvG#&zWjRM_;Iu>P~lN6z|oJ-Z02#KP*bP%!Id$t3=?@~Hf zplP?~#@*PgOw{L&DW0_*Gi_b3KUZgLbhXFn!SbZRoFwXeb{YZ)N<2RLsqt8A@Q(Vv zeAdSnjX1%umO=ZSC#hj8|98&l*JygYb0@gkUGC}|mFkf~KAZ*BmdbI2av1%hCEpIC zNme2e*6cmo);$!Rs>j>wtEYw)T{pWU(D?xaN&?L~H1D~=b?NX6C8Z_15GWpw`jmc z(J5+i!OKx98ff~|`mZ9DE>?i45tVzcpL!ViKP#&c0WzvY9KSpCrW1)5>0>6>ZKLMT zC=Gi3*w*fj`9kX`kiFjYZlDTEGMvEVxd}%05U}-_wWRAd&PJsdBvluM8|QrJ%9hWI zu>3R&$>l&+`0Baky~l|M>Ecq{A@gsH=tmg~#czyKQ_%6WALq2J!2nI7(j(Uy2A(U3cj{wup~F8Cw+ zeOV9g<&8lfr57rS;7&K12)w7YGZ3QXVj___z4+wZtaVCcykhAyjG@|&5LK*@;RYGd zCw0dY_SqBbc-CKIJwKADz*wE6=2p6Z0n}Xv;@}q76=9Qas=c4evYwXxD^sw2DkC5u zAY%^=^Ni;(u(3R?Er|X$Riz^DQh4?0pGiaG-Z5GufpWV`5ACfmXFP^F=P5P9&pggt zT-sqyM9~RIS`T<>_o5IrA-r>V#uG(%cFLMc@?0YMLc3@nj+%T-E#VemF79)bZ<>f! zSaY(IXyhFjBKw|rERRe2-$VCH4XSvC>^~kr&+TZ?vaJOR=_e->k5a$wnCTkaJ*@bZ zSzcNJ5h|kNeM)kZXPFi9o43CWduBgalM#@c*3j@ZidNRV3=b&0YH(7g>h)nv2*OCZ zQUkPr-B}NJ4$sTkdIM8X_f;3Ps5QF^L(scQ!jpzreZv=Ix2_sMlwB=ZTif|sBW|TL z%I$Q*K$p?&>1HU4Nsia~fgX&T@6weG2guh@j0yX;pD#J`73!sj)BkGQ0e-U}XDV*j z5(AaqxS3tRu3Avs;*qw-TLSLXr{R&H`Zlh%63>70w)S0UjGeL%X3pdGKe-mD;ujED*fv=L`W#D_?2r&_Fo>gpzkdq40|%^G`$-m~pwc0$_sMcsoN&dBE7bG*!ey>{8=Tr-HqUAx`M&## zRDQDhF@>9*TJo8L5OaFGaxbgJ#Dd24vCv|#rmzhhTPO6IB?4Y74@CJrj>fpW5VXF0 z{K4O>Ryo0nQ^r1IzAn*QZ5tRQ0HK$uVQ&dw4Ygc(#O?Isa7z_d`J+!_m}X^79B7ui z!~dI|fzMyUggeshWm1is?#z4a1`gCV9R${pM)#^_BPk>^v z{e!&+Z|!?VpxUEb(0YAa*Wfn%q5ToG7BO430Gz-X5~*s_%|`1@a1xg_HCc3Ve$6fU zaWSbx&->jKe>=(})GI9bhG|aQ#wQn`#3b+^dZNe>qp$81<*@qX@e`0^@BQm@8|&|d z!2DEQk>u%OzxCFdavmJ3i7d)5Rn zd8#pxb;REgO>&B5AK&;Kz(hG1iQ~UV2ZKS%CWyk6=l2Z_LQ+cUq#)Q)M+kkib^o0qconwuU;GRZL~ z^)}bU9qS83fhaEcjZ~!OI-KTn2mYrR=Ak{s01O7)E%Y;JYsDwP2m;7m{W(4RXQJ$; z@jw|F3_cEj*yW*Qaa>K7sK#@hF|N4l!uSd_mt@Wx4_?pJWPv;_>aZ zKvLuvfu}RVU_}tTn>h1(k#6&w4oB7WuJaTlyg@lsm;$NOeC6x-mgWb6&u!V?J!V{I zdLf#)IQTs0TD={FFm^ZsTDbhwxE=I%Ekcu@2Vi7P)YN7+v<}Mqgg{uUPHQiRea~+8 z$EP*iIX_;n+))TXMsjEs%j+6SS;E+@ySw|D&_$Fo9d(=yC`zo4x00gWw)}`+0CV@w?Yomu zjZ)r^+6i^Thj?gl_Agf%w@8dp=-L8kywgWh31=>%w#@1{)#hd8(({-#Ks-o#gu1Z0 z;FYI8nAMDOrb-4=l}n))HE2mf@E4dQ0lK{|$y$oE4SHq)I?$JaQ&ZL&`^22_S*ite zU=VjlAcKMxjEQMKkr?r%wo0TKAv}qZPud22Bs#hUi3j0^MvFsn?1A|Ie=;8-73`(= zf{)+$2z>Mwe6$eySo&BTlXQkacOK6fe}H9*qvk-+gZu0;Fi;6$1Gvr2OVBKDYYOWP($UO{;@pWd(YnX+-I($Y1Aj$##;HW zD2kl=-SbumzS0SZgK#vC$u@TcTKFKHO&Nja2yi$~5ez;&#P~1xqg<+rXK+yGp4=@3s;_4WQiS)C%30O0I+?!1<=UEpjmjYdl}h038!fj<8X2LCAz zbpccyZA)R@)c97M7Bw4+2DRHCH%Q_Kr9P?+;n#TL5B>H#dhOZwWXrw(qEoP)PyA07*naRCr$Por$*;#o34JUIYUoaY;0qpeRZfOo&U&IXThqe-{LCkAP+|5lj?_ zMsPt96~6P-+~@Mr%uFxS-P5zoId%FjJu}r+zk2Ie@4B&f@7^0}K(9OQxFhY{xifLS z=bn4gZ-4vS^z_qDr)QpdCLKI@Fzw#GJN@WKKgw6`nflsDDGloB#`pHdjZr7R{r1~* z=FFLN>eQ)x{nx+#l|KFS)AYap{VzBEf9q?;2b}Tk1A@(VS2l(W=pX<1$LV*!`&|Y! z?cn1F)9yXHGngv@y2TOia_);OW(WizB?T{bSND@ zd^r8)H@`^-4jjl*8=%vW)EgTciTkCRZ`s=UL4?p~{-PXXqeYPtCx=Z&?o0RHdvCr1MVg{ucekArP7Y^`If4&z?P-IrYE){qHQLxd-|IuU=h1 z-<;_|1DbA1Baqfe;C=h{ZEHC=EF!Ic^{ZcHPK^XtN6o#9PCt;m0QSn2E4cw^I5iE4 z4cISTx|D$puU_OsVq3yz@PLjF3b>KHG^8+^k0VEpWaA5}y`TQ{rNi$ehRb#Q}`#Je3Bc02HfyzKn?XkyB= zeh0W73c13s;nrM{)*4(E(xP|+PuP*hLtvwShBsq?fm@@ahJHXp0JwY_`hi4Wg;zyD zx4DLz4=WN`&de2>A;7sJg=wnpFt~6~q+v-^>!EjE^PbG_ozc_{NNs=@Fzfe$q>jGS zLpvmPg{X>vp5Fww3kPU`3UC25967s^{_LUj(8CX9>8$r1KkKE3bmn&@ zb8D1i&cs?k18y`R=%V%W;D89HMzzP4Ln3-=+p-#877EZvSk-V`0kf{890ZZnF+^+6 z?mgQPE*u=yjx4gKBkox8X*o4g7(NaC0NiRoxFV(D+nUNVpu5`l8*S+AbY`IdjfBeG#jGDc~|7r09wyHt{f6Ix^P(R643J;v4sM3v=l-o zpcfwe0QcjMKb|Ev4XYs<4}Ce7!9ThTD3MdcqXo1QnuDTk4d}Ab?CJlJ0|QdE8fZQ6 zx+CoYVOsb|tEbkNBU%Xk+0To=FCx#Da%k@6aA*WM92yB7P2=+hbXT-wp(J#1%^;OYoQ0 z;|>7pJFV5wXmL#Dll9PD$<7%EqT<_20X_Ed2K3A^<`8NTL5!xu2CzqFbE3pYmPYQ^ zTrS`>&cx8Kieovq+cc~|DRfRU?$AI0D2M^IYfItWrmFfE8zC+QLE35>2h;#Mwo&Q> zzQ#7^ zO6Wxy1XF@V3R0B58eKdrN@$LBFXgbTRd_88pqVV`hX=c8go&V3ihD3rTcU-LYg`OQzQq4W4j%umiM?x3 zbEpHvaAs2-0BFtKN@XOs`8(zT=)T$MQUSWCmW%vaYT)0B(J$(&k<0)zrb~djNJsSa zi<~>UwDR6b2g-3E_it4Xf6*Tr{|s~Ang0$@dk8eK<0>VgSt>x+l|T_-NbAVIBi|Op zaT%7;uf5QI& zxxC#}3zH6%8~_C{l376ONoO|FWp&=KLZMb%LRT50@_Ql&MoJ@@tuzp&v_>BfoLpm6 z4eyB@yXf)?pz+I4lVRdU0FA_6R&#dw4BWh5yowsU0 z0FJ31mshJ3L=VAYwx@moz1Z{EBA^F~ww}5bsY%ptM?;SXPWdvRCv6#?fkfQkRHb2u zg`iH`N4Oo((2h|qj8%k;eFKRI9gqMt96CDrH+r}Qf79%MUho0vyZcd+!?%gHG0>L)1-t~IAtuL(YCX){ zMJ{ z)q0?ZMuLz0H$GeIp?jX!`F`D;X;K7r_8YGXm|fE+YrUsKaK^pcUqT)>0UC z(S}$7_+@=frF=uIg4NbU#DLmpYHlsj%$SbiYa!?W-n7i0s{8C42SNZ%2pOP8S{uQR zdN1Y{fh+6Ffpm_(8~~gHWGvFTD!S>Vr5u1({|cpCG&`4>nVT*u%dr{m1h3^4OH0Jh zE*=sI9fNKhIPh57zyBB8smw@e#&f7a;eAjKJnaB4;FeDVXt*}tO~ZoNwNw9`H@)p4 z-3IhrI@IBp0$6IU*pP5BUvyUq&~X|%@p%m%?F~Y3-t< z|9qFA#eakE)wctF9b*WGmaMU{eWPyV)JSBEF7Rp$ zFZ7$gu_!q}BBgaph3cS-7QjXS=u1?dy>@Lou5ej1`Y!~an}7{aIQako>4vn1qtap? zJfvb9slr%zpMUX1dgF~Z(uor%((&WRv+qS6K*xh3rg8Mt=DFr)K+TmM$3mkRXn3L7 zz=f0shgSQ6w1#V2L!3potbQL$3uu55V+6_QFBip-0l;-4;@Z|Bk%QW6uf3Lz9XpmA z*^8YZJAx4gDeW`LsZE!QE;>3fVR+%-Xu`%dpqq%vIlm`nA4MWt zb(U=$DaYYUUfovNHvkRYIC}JGZX`^s189a!J++B+3=d<6fm73X2KsJf4boa|3e*NE ztc2Dp&u}exy{@K{v@dg>y2f9>v=X{FB1}9~LrYvN(g`p)L>7IYn~W+zdi(9S)5()3 z$8zX8pBXtd5*wPq?sDkRp}gC$%S0^>z&G%~Dp^QoxHTY-6of+}Nz!TDyDXe~MnE?? zuGN{+_U>hCwx|&F!{S1imjQ)fP%qr{o6&Mmw)mZQ-pP$anuo!<#*OG_4N##N@qjD8 z<_frDdItJ$a&zbhz_w%sz~*moZrb!rN=-*%%KJKm&5VHV;9)!ZNGL_*)X|3ma9eFw z4MWpzpc_8>!P)fwKi|*%8P4jqUKh~P4|fjwZ{Psj8Uu{y0(KvR2{=r$<5;MZJ{2?i zBegj=as}MW!l_pV(2<++Ge#Djf{@T?I${FHrg=305kS$W0x22O+%{b(ypR6fdFQUQ zYuBB5aYCQ;`+$l>Gdcf{oLbjYj6D|W)UwE7an@|49SYrAL$*?Yjw54HAuWhdj+kj*6G+pES=?^MITg>MHpzBHKp}_a{ zSz1{@1B@6Z<)P3@Sxo^AFaWV8X(V>6E!gyPd7n|`_8kywMdWAbh!N${5(=Q99OS(- z3AzREx$4L?T$olLwUq^QF)wr*8V-j&X8Fw0nd-0A=VaoY0vfR5s04_Oc0uz2jnXt8 zeN|XcNMR1EG(gQ^)e;p*?|Krtg@@_rBbE}-RV7VRo?LYi#(EDTwFdMe%+gjLO;jV0W7g7QoTMcyyrOy0 zZ=)^WjWvf}An**at2;I~)5hlJcKw$aj~LUD(f4SbjFBw{&bF1Z`Uu%L-i`-7*IeK0rXvJ_@scLggu2-#D-l7$BerHbU#}EYt{e3h1?@ z95@!1aDqAo^uVWcV)t~cFCMzaRhNy2ujt6n&(pFdO&gnH{yR%RPs(iC_BcoXZH+VW z+V=Og`FXbkdI?u;odGlKDb^~)%pA+U#eiBSA2pcaOgPhHg|psCT@_heOnhf7^^ER0 zX87;Q7X?EM&tbD}i`OCRu-6hgpk08V=QSY>&j0vK$3j2bo@`q=WAKGAMF9R0`a*N% ze^pgv5zGJ=XCr(xh=1ftA54~BOom=((U#q7mQ$RTcpm(_@%V#A)19bGojx`Pm5hL{inUiQZA?ax+{V0>RP5uwHh%twRY8mOm z&*sT1d#*~~-7>{pc|gYiRA~j05tmGoxd3dWwUw*5hxZ`G^osz*G3NyUx8Vp>mj27b zCRE2o!vcy4(CLRMbq&L+!=bB|UIv6bn-qfuNtF1z@4lPfd+)s*9KiV?n${};x2K!t zn|(Asj@@QN%C8O!{1z@SCxE|4x@LU&@JIXl1UM zvBn`lWg+?9>w8yLLdR_$ zzH06}^WSl`AvL24kIBZjm_whjdWJV4sgZCToM_V`LDZ<|!)(HHvm*g+q%ywFG2!_* zzl}D4;sT-1@MN_&M7faOj7B0#BV2sOHom*9&sa%7GjSHHw~8yYBGxxSBHExEOrDwf zIRwHnjmd*6BgK%?{B4>RARazhByeUEvIAT~s^rWhknw+jo%`)abTTT-YFY&>(w>-T z$G)-yz5e>^xsfKAg*?>YfMEiJzV2;NIs#_Prva##YS;YHY8;p_ z4o83$=|se|nLUxr@M!oZR0Ivdvt?<>b_UD3!JUzcR=EOD{4O;x z`C{EM;ePrQ4M%2ZGG__jNz%z;#5ju>>a_-RlTn}XJ&`l>GrSl8DG?)QMqOsqG?T3w zD^d(|TyTXmSIu9irO$9G!2I;nPp9Ai{`Wa)jCEnm{TvT|fH>|3EFi6U-+p_QYzd8C zQXj**%qqn=uuHITEc9u@M`;!so;9Ew4SRz(ZBZAu)TrY{I>VXODj=nqKpK*Xt=vNq z5;#UoN5cuyx~w3NG=nFQ>R7lQ$t-WifWj6p#o+#!pN?Gu0I{$DHuOW2JN<16Ec)kn zas|+wDQxruDGkLyBC{(Yt^fMhzvi9F#XN-6yh~3xlyCq=Yadr=g;E*L%-<|a%)Llu z&Dl)ixwB`}2WQXb44!}qa6vz~mT59Pa9LHrEc^hbNOd%A!)IA2NM&h8%$Wy|MRLYN zVuK~W{T2_&Tp5SBW3dQT)3Ja!{KBa@AOdUyZM|ofe$4vbr3Q55%xvZGRU06t@w+9{ zJPh$ZKm?F!NJO<5Tmi9;I)G}Lvrgp9fQ6laWaU@@k;we6F@>GMB<=Kp@8G*NJ6k`6 z9YR2B;F#56$XYF2**)03q-1b&THKIpYyKgXz1V zMA2ZO(Z&*S^g~c1t?6eMF9EF@)7ma9KD0uN1v+Ue6(FhM@g7cRc3hhAftD7~#lo9N z8Kn+aCPxawBq3ouV4<-9IH>02%SuWlBixnOB+eRDbI=zSlLd@eNE`%_&@3#rclj$4 zT(?uM><%2lTuAgmPd;{#GVb0K8&Hg>hmX4&y9tX4{!Bw!L(QaTWtP$0r!Lj9%UT*4 zZ~$U6^~;%&kbnv>t5HBQvb~$p9!g>EWDY$5NxdslbK0auFta>`q@a6gFnn9W!CF!Z?ijue`7IeOqoURTn3L=tcd<06dX&&kiKduWMNrroPL_%z3e->`v1ZK zx(rBKyO6s25_9-sLQvJInu7{xJ_a0k$H|wOAPpy6k&I0j`Q{F zH`2LtBU)rB=opsP6>ulwU|A>!699!UgT049c{3BCDI3nr{qj||P>bpSA|%a)ix<+x z3m3E0E;H{&nt?>i#fhjh{=frSB3lQAD}9J*yx{HfPiReCNGvcdlyK&0hd}$FmL&Rj zt7(ag(j3<8IMa04jw@2yGI)$}rfWpd?A)0pv}G>LH63-+eS&&vBs3Ff#aItCk-IV> zXcLewNKU|^ewV9tvXL@O5Zk+lowCC3=9S~h=kvY#Qp4Hp57HVSDBYN7K&F4Lv!;>u@3+dPjT zwbcLtY&f*izYo21@l3TefJQ0-9$ha{iy;xMNr)s-a&Tp9j0Z3!W2PGyE=)~95Dhl` z99=+>UYN4+%K+3!=*X#!5@)MN@&kgX<2LlE3e|~{48X=nb#|lCLfV(5Du5JVKEIj? zKv>lv!uJ4Tga?hE^$X|oJh%$#s-HWHRF3amDnJ(cazy91TCKi&8 zMm&2}gNT+yb?Ypc7~MjjZ>urWvF>>(0S#bLi~aGBe@xFm|9tjdi=3HH-RoEGiG(u{?y}W--OEsUp<@(C!X^jKwCutrJ}hV58n0-VW8$%E$Py znD}f!2erbtnZ}|n8fhk}M_J5jX)J*Om5J)av4Cz%1ebiy;!5bkh{H|ctS`LqLi+Qc z|D2wC?zt?LJtzT=xHWS4!_pN4KUL#R+9snpTW21C1ig`B#Cm~%nMsdUMRovPFS%-o z1k6$$&EIvr=Xh2?EVuPwsy~JfSAdyCi^=+pH{QsNaj3d@qIxp=sl*Drbpc(~woqkF zEH0o6PY0lp$^iPs7hg<&_`@IaHtV1xnLNDcY=qesZ!y5l|Erj?^&Qq(2hgJL2Gnq8 zBsANwzQx?HWW4(A)pX(fh3$Y^t&l{((CXyyC{8ZV52xKvEad+EnY*hlgaT;|HS&gl zSN$=N(q(|2q|4Sd*IkI;<5{IKhi-`S>ovG$7)neD0Id`@_5ean_=D#)q{1iEKLG5k{Jrr zCZGkg*P`JhN^0)Wopcy#yM`;H%68D@J!KLa9|O2DoEgasZv|Xz^<~+B3{kSi32LjX z9(?>@I{3uFtj6*H#$hRjO(FTCdT_L;K1d&YFjCP0W&;Vzq~x^mQ$lwIXh92Li&jSc zy`^MP-`(Y$kNfNvC3F`nq55Z*0h+^@oS7{aFzLGiw;l(k$eE)~7YWD#6yA)Q5RHP4 zPO)e_6ANJ74UotH+Cv}ti>oH^=$0S|N~nyaJLO-?#4cCSl7 zvtT_lU^rr|E?vHqE?>HwpW|kr?zf%!XjfSbS>3%X&Pi=bXix5Lvrr1O7=}&(!2vpM_4xpD{YJWeK;No|t_x@bX5r6h zG02@kBNkBAoIV=xN$3L&x?%cR03BUGQQfgU`x3Q}yaZG|uqSC7^j; zQ!Su#=jHPhP0u{@OnT`s51+14aG7eDzt+$g?{CXgX&P+2p9)r9vV6jM*sj0T1iAfRJm4l zda93>5-msn@FnLoaq~OYP8e_=eORmZxl<&aT;^fJbxgq`L1!#2cfEwz-^P2#kagTsz zEUd*+7G={Gh~wwXjdEy4H8G%3#{6zrKliweBL%00Ld^@%a6~-U&YU@u8}z_PXbw(A zbGAkb&FFw5rrnC!oZz73zBqB>L^^)__+S7H&o^f^yNhv=qmi@{rucVh>emOUQG6V^2P7|mHW5mJNSWHtc z$g5ed2FoG&ZwH<&4$m~?Kr3W+;DjxhWBeUhw zkXGb5zI^%fJP@4fP53e-KtK4v16V_{;9)np70{=*&A~|NBA@|lEI|RF(QgZA)q(6@ z0A&s6dh)$@32ojAbG@N=jVF6}qYm$Eu^u?)4d_2U|9pD(x#zO#E^0aI0vf7;RAZ}V z44@fNLYr5Eoea+0E}*|jSFVfH+W6kOGGsB8Q%Z zawwrAp!E}31G+wdi|^>2L&Fhu{9$rA6bfjhl~r1i)I&WK&I)Kt$(fX9r2*Yc2|W?{ zy_ZJTaUMy{iC))4lYqlXb#6h^ff`6D9kYNIpJ<+X=xSPyjjR}95f2a0@1<+k##aNF z=}_1+hh}Z`E}Xcfm<&Pptsa^vjO^M>Da*ox*s_8&!LOY6@7yN zca+u~8Vzs4AW(GliJ!IR(4$mfZ6}&pbLg5YQBLhuUk3Bi#T2j;qaQX>x^vg`+;)9% z=vtIxEum{7rP}SSbLiWtQZ@1vd9_{7QQun?*~jIg=u|@Q-jnXydslYxEc1u1rnXyF zEyuoe@#258Rnr_KE9GrhZJpJ>YiN|?o2ysT)iK_7Yb{6pxvle#)+KbEFK_eSp#j>Y zJbPee7aIeC` z+m+CpY0vJvYIEqdVP#a7Zq1=v5ZmnndQ@+)YLIL`6rOw~oj6{@u(H;2v@q+pf5cL9 z=>L21#q?aEB*m($?e^^6ovv)vSDA~0f0b>v1&A*tpvTo%S#>}+t+BE;tTbI^Gp=AL zhgGmB92BcyVS!u&dUwtb*mejOk?ZK6aUQc?`bwoSXo~l;_W@`eX#Vu4KjlUaIs*yx z2_a=wm2|pw6V0r$VFf_P{MRIy`4=Uox5`Z8i__<8zLaA|sT>C?7T%=zCLU}iY~c!T zTmyQ#gdS(*#W8Z49vZL6n0?elm1a#a^j;u_Kf5VuF* z02Vt7Z31kz$w@_ncI?_ zK1tty_uY1f)_}eh&;$;c!5`sZscHBzT8vn|fSf93NG)^uZ5IKfPwP!WchULcXU6Ck zxE+IUQ0(5-1n9#-&7qRTH2O1|M*3;_@&>I_h zr!dh>l+b+w`pd7rN`HC#?eyAfujLvp=;m)JnHL17mAcI7jZX+!mabg+I)fT>dJL1h z4PcE;B+Up)M}TgBD{1n0u_`S;TUQVj9{{#QaWR^F@d1tM@{wHX1MW-p*QU-%jJx$< z_zZSBi`Od*s#A<6vsmvv9Ra#tC%U>jMwFX=%&X;$tsz(}>{Htxx}qL>2ok!E`zUi0 z3mp}O!MrKP%1{m;R8VJ?&ISn+M@^N|xI*xYFQNBmZN#>OKJZxDy{DPC9pk3_|UcAJtyBbtRCReC|?9=q3ZAL|SzTJ&82N)Dlg{x6Aic2lOy#ahGG!i(zFEDMv4Z z-qM#;2Xsqc*vH4ry7rcia?E%r>|@TRen*W7T}nXDIsr=o=tmw+2cKw1%Q5SC_WAxb zpvR2%QUE$03Kv~M*H{s2K(7IPyJ4jUfQEMKiU7I>3ER@U&Z^~@l-q8|hr)WJG&CrW z`ZE^L%kW^c4EH$7L1-6|_F}> z-f+0k;vGlnjJMu;E0;(n?ZD71eog1LH$dOs!JdIzV}!7b;j@5L;|hRr9y)U5NDjW$ z9Tl+i|99SbC%rOo(>DeYYpCP9Y{2lDGiP$dN#}s>X}aeK=o$#CdF!lW$K(_FqIVwQ zTtvRuh*2b90KaCu&`zB?HF!Yd9-E`FKl)Gl@Z5(v4$$CM{ywofLd~(Sbo;CmH1125 zE$TZy<*^dV2HCH*+!@B48#ZJnsw8EIRrJJtBmPXq}i42HHWXJZK2KI{Jf`4p8xi(n&16 zq4rl!dc)iS-P)71{6W#f3=krbp&ncT^nn8hvh)MwNIZBnjocJOa?BghEHncNphsvn zwzC?YJ)16Xg`Uw@v>)RE-5(I!n!YulCyZpVI4Gc|!I_bMg!9t~9A)c9^+f~RfM?!- zX7QQZPYs9Zx#%wv+X`dQja!`b7Z1nVv$zIy1|lLHQuGz*Qxt2yV;p&MStE>VnfpXm@-Vayuc(gM}l z26PLb)#w=(DqTw!~ud&sjl0Hy6{;Ud^^BC;iyZ1)v zoUU(ZWdyngbSs@)@DEu7y2lBOfX1mQ=C;E%b(Um}JwC>uziJKW9;Zh@17`dzFo0lj z#Mhd}&+uSg(1i2n&!?APemTAL(o5;+(WAKzpoh)d%+)PC$Jj$ym6KV6@9yYh*Oa5d zTr_@51ay?pNM`}93Xm`98_X9E#4qYJmXV^Iq1$*9mC+ zEub7Y6A5TQ&CgLn185{PUO8p@w#@OMN&b0|d10f-5_rHwljo;YzL ygLxXD*Q0%N>N^5-18l9ptaJtF2BW>SZ~1?bRA{(|bPx%ok>JNR5(vflQB#aVHk#=AFfFYcgTvh?V*c>LDAr1(F7`6DZvqCvJ7=$1P4e2 zHi>1h7#4L!oM?3-VFU)Cl@*y#8j&k4i#2y={=Y}z&n@@feeeH%@ArN}*L4?l1mSRq zm6gv#qqjk#0&Lr6W@d(W*({E2D@=V;p9R9u4fW~@3Am)wFPWR0L(??%lk392T8-(M zX|ma@0#tz_5(r&4Tv>Pl-t4@^^Jk+xjK%2c>cTJ#b@S}}Jd2sP*tS!@-aA4!3|DxP zJR1A~KR(Te-rCBO!9mjLG|6O=QmIszE`(Ahgp1G(T@iR3G&ePo8XqSfkF&YC#lpfH zhKGk49UUc=N?}=+tgQDY$&`tze-9JV8fexu9LL779a>sj7)m6`<#U`@tDb#zy&i!q zQI@Gk^Z6JbPqDMJ!|u*56B83eOcU3!Sz3C}{{Fr7I``{!olGI zhd&Ofo>!^;ttl@W9>|+JJ58cp-9$nmj*m;+yWhiykDq97Z|Cu&J_^O}bebl)Tuu=y z6AfKgezsj}W1znu+ja>@!c;32mBN5OK>5tVG);22AYC!>BI452v9Yl_K}!p#)+uJhWN&Ye_4V~e3gyTzlXxWxk|-3q zK}ScByFGWX{#cxx{ARCEpj@_a>X+5av^HYo@*iNW V8ew4(@gD#H002ovPDHLkV1g1>NR9vi literal 0 HcmV?d00001 diff --git a/tools/tenscan/frontend/public/favicon/favicon-32x32.png b/tools/tenscan/frontend/public/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..0f695ac8a260e460aef48eff04c9fa55d4a9482d GIT binary patch literal 1744 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 literal 0 HcmV?d00001 diff --git a/tools/tenscan/frontend/public/favicon/site.webmanifest b/tools/tenscan/frontend/public/favicon/site.webmanifest new file mode 100644 index 0000000000..a77f5a4893 --- /dev/null +++ b/tools/tenscan/frontend/public/favicon/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Tenscan", + "short_name": "Tenscan", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#db766b", + "background_color": "#db766b", + "display": "standalone" +} diff --git a/tools/walletextension/frontend/public/favicon/android-chrome-192x192.png b/tools/walletextension/frontend/public/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..8920a45ebdbb610cb3f27c8f325c93983a9df415 GIT binary patch literal 12554 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 V8ew4(@gD#H002ovPDHLkV1g1>NR9vi literal 0 HcmV?d00001 diff --git a/tools/walletextension/frontend/public/favicon/favicon-32x32.png b/tools/walletextension/frontend/public/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..0f695ac8a260e460aef48eff04c9fa55d4a9482d GIT binary patch literal 1744 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 literal 0 HcmV?d00001 diff --git a/tools/walletextension/frontend/public/favicon/site.webmanifest b/tools/walletextension/frontend/public/favicon/site.webmanifest new file mode 100644 index 0000000000..ef69d666d6 --- /dev/null +++ b/tools/walletextension/frontend/public/favicon/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Ten Gateway", + "short_name": "Ten Gateway", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#db766b", + "background_color": "#db766b", + "display": "standalone" +} diff --git a/tools/walletextension/frontend/src/pages/_app.tsx b/tools/walletextension/frontend/src/pages/_app.tsx index 08951a549c..ba3a57bf6f 100644 --- a/tools/walletextension/frontend/src/pages/_app.tsx +++ b/tools/walletextension/frontend/src/pages/_app.tsx @@ -34,9 +34,25 @@ export default function App({ Component, pageProps }: AppProps) { ogTwitterImage={siteMetadata.siteLogo} ogType={"website"} > - - - + + + + + Date: Wed, 26 Jun 2024 13:41:47 +0400 Subject: [PATCH 9/9] rm wrong meta tag --- tools/walletextension/frontend/src/components/head-seo.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/walletextension/frontend/src/components/head-seo.tsx b/tools/walletextension/frontend/src/components/head-seo.tsx index 26a475374a..e353162253 100644 --- a/tools/walletextension/frontend/src/components/head-seo.tsx +++ b/tools/walletextension/frontend/src/components/head-seo.tsx @@ -24,11 +24,8 @@ const HeadSeo = ({ // @ts-ignore signature="_vd3udx2g2hfn9zclob5cat43b94q7fyk" > - {/* SECURITY: to prevent the page from being loaded in an iFrame */} - {/* to indicate the browser shouldn't interpret the response as something other than the specified content type */} - {/* The Content-Security-Policy header is used to prevent a wide range of attacks, including Cross-Site Scripting (XSS) and other cross-site injections. */} {/* twitter metadata */}

>TDMq(9rnuD$E6(#}v1~5%=fkSkcc0p$#l7{AW${i=b=8 zJWr)RBYD-%_Sxczqo3uynuGgimj{oRy>t2_@%nvegb;3Gw$)!XNJo_vv@}A5T?&H3 z;;JbF8Ckg*{w`Lc(6V3`u_bemT>(@94RmiYOdy&RjJOTmfV37QjE>MZJXAsFCb#n6 zJXBRAvi^myg}z+eo7?8--6vm%wc3PCby7z28cNjkIANw9V)d%RmTH zw9ST+xQi7mX)02`?dg+WzMs|HY+Y zfK`tSv9$RKiv&D#2yB;%=k@kh^e$h%tPx+KzupnITh$nM1)F7ie0&IcicLalpsHmE-x)f z;=MEf{tUHna`qJ$P-XHaE+Fc>y5(<$i$*p4SuaC_>ut=~H3sQ)ote^M3Jj zQj_RY3lJ&~)17>Ks3ac16~S{;n#!h55AG`2Vm3FOG_G^bun4H4ti1J<#C}D)taumb zpCQ=C&!4rY^>UB5LwW%d6$Qe?_x;ihYuTvH9{XADGB9JnZb|N#`|)>>wS_q z($VpFtit{*AeNt~dM+29xCDyQMvzDIeza`;K(^s|e0HwqFhF-d+VA)6y8}L8Cek*V z;(G4qST3Bq#Kg@e=)rp=AM~&`j!`w@czGk<3JB(KXhPdTUD7@pNPR3rRpX%RD`V@X zmYw$4*X8u$N;kY8%76XlbDAq=;D-}yyaI= z@a-Rzg_gn}HZ$-)rqJitbNaX6fHleD{Oucpf0w@2KQF&LAOG#~9}kNMfBV=1-sFeB z1(|Q4%KZDvyL$Hg>-NG3_95{j zs(!xERIoNbUsm9l_}7nvhOi<(U*#~rHh#3K78K* literal 182127 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 z zGJ}Eim*q3ZPJmnQ#osq1y|DY_wM=c1^m!EK4VLGded473xF*!1GF`i-Yx#3tX8lP1 zht+N=y{nV|{(C^DY=j(b-TKW$9M^TXPsEBpD)^+)Os@I!UV7xLXX{n%;msbJQI;7j zkk*FXXQ1~#8?6-Jllvf~sWp4=m8o+_`$>pgp0P~fZ0Ze+V5z#Lm@sH0MzV8hpLhsW-KF{uX z>+e4GhG(NuYTOW?K!rIpd8k@iYjEn?AL=Pu+OWC$AjA3#zShN>{MSr7QbVzvsP{ao zP;yT4P`-r;DhsP{VP+e>HRc@ZDI8Zh4E|UdLZz<+qk(gk-%gLr%n9+(W4N4X_wLjG$HtPh|6+utm$>?#r{DmB_X*0^ zwu|Rmfc6>OlH5EtAmTjS0JliP=X7@xqlVp&d8VJ_@`u#Gd!^1T-yI)vT#4-?K0Qgk zR9AI&9_x8;j0NMv&JxgF#eg&bqVCedlsSQ{ot*X)tuKF!X>nP|jV}}}S3Bd&*BdxO z<>enIgbPZ^MV~s!qv3qAzpa{w(OyGCmqw^R8a7>Im;nDod3o{U&9TL3-;%{9rT_Q( z(8b*^?kZJi5h_L}BB$!HmI-1lF6CNK__s;6ecHt~e})_0c|?~sA0mm}4_P_u?^$^| zfrzIl#ywrqd9h87S2lw09_bT3+qHhlw#3qafQP7Zjg!LbGcVxc&WhM!U_ZZ5*|7}c z8aqMKGEe_c^ySxXhNxCx*8dD}`UyPMm(aYBjYeK8*ZK7+krqtolGS5-Ct&oSg2`kh zRZff@BV!p`4HB>O>cyMep0_bW(L%WGqXR-dbjildg}rl3@V6c4%`kNh1?{_o4FH>e z<2S5_!=?#NLs+i6zg;K_a}0d%@2mHG?0l=6ri_+xJlPv7uI)+zz|cjwu&{|@#hrqs z>D?_a)=UUmyORGbV}MGB`)imirH#&Oi@7niJHLCDOuIUN^8AzB^rsQXfdV_-{`?g* ze(6B+*ESxbu6Mn2BgUipm$%&ryLT2>XJ<|92o~7!r{W0Y)}V5eVPe|0{65ODi-ePx zwQ;8|{NHC4Dz^;bxX`4%(<(nrE*z_^{ZjeT-L{%>DrHm+ck=EdrOfALb!mfl-Z|72 zRfSipWU<*#^ZFRIW2PGK@HP}brMxVG5Qg*rZkR0-dTWI@qhy+EFFF0wnF3$dEY!C3 zCFW6zBF5bbeObK{PX>{xS>Cz%7CF2^`{^@v`S%6=2c9kN_I@rS`27WzH=_2J?8iO1 zz!W$>cd^71|9O78cfME8tJ#@w_K}Q?701kYwH(D)2N5-PCI9SBU$$nNo_0nnlaGIF zqF!<5SwS1xCzvD9X^c{whYv2SF8t5rA$FxBYBPBt#QP!Qt;w4N-%^5A)2|sFVdlK4 zB)UpDljp=`)S@nmiRz_Uza4e0t|PPaijR*6nt6Tc(|vI5W7tv3#G9LRX!2ERXm3*e zM^>7~DC~|@au^hcy28X_P@I+O*3@WEqjA-Y=*9lviS!zK+38+tzXFpmg>%z0?U~_G zQS5R_ardfRD+>deC^L^Krt#PD2})-i8aWFjCS%hnOzflmdhX0 z!uwy@6NZFs#JoIGMmih{!t}i>VYJW9ej0!@+qH!$_VNmt$R0d| zhW?|+9JoQ`8+A;VZGLCHlRvvK>@4H|zkSo#3Gg`qW!+na1kdg)=yO2_lHaBk=i2QR z3LheDF;pRPoC5Duyf4kx%606iC*S$(w8D{PNTc*Je26&pzvt^SmA*P8%k#rkf*-?R z7#!pn>h%?p2;H!1`b>K{1Z(OVn(zpbytferTaX7DWwc;dkbOpc@0FglE1|C%d?MAm8|MMyC*}=fjbK1e^8Gr0c&^Y4A>YR7It6XaaQ&cMLpmQG z-A{xG@HU}6b(^qs@e|dw$IWpN;{z^GGSaz_b8*8iH8c3S>e%!q<|JY|H+Jx}#02A7zN2qhC%-2R1F?c7SGxavBU2BO!TMY*D=vn*|mNC8Il*m)4d~A_Dq9Ie~*Q;EdTo0PBmk-Z;6cq5^DFw_Y%ieG2f3v@2pJMD$|)QBf0HwAiG2}rEvj7) zCeI~A3^6nETaCF}r-ISbFn~oy%ea2+A(%m@K1h2!I6Z&-6+dtRMDApON^hqfq`>#)=5Qm^Y*^Jyx z;u$n+PkQMioV!tdlLOQxwPa5>ULj*8&9+8z*zQm!PmK~Zye^5}DJ&yw?EH@$9YjQ( zHaa_+AQBdwe<>y7NYx_P6c&U504!PClQHzv-KkL!PZpK6=gl2+)><9!Z+@at>Rja& zDNurGmDb^~qrDUjJ!tN_W^1RCusCElitino8zt z5fXw+0l+GG{`}hR*2IzRXWUg+r4bLU4%9w>{v0d6!qgO+E=PT`%lWu2c%ItXJa090{F+6+MA zziG&SySp?$(}A(q+@@HNqroKuwpE_yW&Np%zEo?oA@6MS{t$M~ z;LchcU&iqTf!rMDl~--z@Az=b?3l8%?bu|E5jJE;?^Cy314a+fkk@;}n%~io)E!_R zCRtQ7edIO&T4IeVP$e8D8D>+@KLtl|lEuaas9JCzm=oNzy*Ty&o;;W?QTgTH(sl({ zK<)RUWMxP^D|wo7YIGGdcR5QomWp>W=nJpiio-E$4mBIwoOPD`O~U!EWXU-F#&F9` zfpQlN$rIe+;v#A&61jO@7Evyg@7(?JE7a;JRKxEro%F73&nK-Tdu!8`@GPlXW>ZM$ zXxG_++0T|-OhPADlpL>@BnKzqrH$mNa8J>x?(ON*4;9$8H>6|{#F1G2TMDUvc!;rU zc~)3k;BELs3g(-1*?$dA!+6BSC)=&Q5P6JFVci#BKGcY@1eQtw-o;PA9)iv}eNtI; zNaRCRSp*jc&FM>)VSoJG$os<>%Y`qMY`u9}%X4Dr&dFQy8%dNsKQ=DIqCS=xK~-@E zmsmMIeFZCQo>6Xn+}Sr}YBbciX440)vKPMB`OrxOJb%E@2fDJSM)T)-X{SZm_tNoX z{g!J!A=yG|7f!6K#7cvp?ERh$@(q98gT68tI zP4wUO(Y$dZ=CYumAmbG==ghzJeRVFUPQk`I+>~6k0Y=R7v8Z>r{_U7T!x!jO0r{}5 zbcYaND_p7Zye_U|Qr>nYxGjQyg6z)$72bh9wt!VvMQPOFg1u5(&AaROghw2VHP@%a zd$K>tQa!kTAHGO6`+nV)hL*z|&*ghC39J=&C~8a#!qEbp&7>=%qoV{wXW~zFU%60)`x96vHMJe0Fv&>;+9$fbDCG;%LhQBEi z@?%r?m2u|eR+2Bw`GfEr=&I-=O_%EC?q+n71fuj!sY1}wN!BjY))JFKs}VVi z&(S@-bE|=}r{8MN_Kkg=h{tOU!en6; zJY)9tu^Z_0r z0b-lHGiFjgFZ=g8#1&VE5Q>V6L$QE{OdZ5;tST8w0+Ed{u$;GL7PO8^+b-yTF6!R3&A zsDDO6J61ndS05rENIMcSbBen9B%$?MPpQP-8M}g5Weu=zUgD`7{gIZ$ZdD8xkoPKdloAidPtHV&y@~0MmV#TAZ;M!z^LFdh)zhfxm;ghh1CE?zT5tauxd$`#`dlO&??OW0K0Vxe!$y%^`SOJPQi^@md~?oJ@3EE{muM^j`k1OsRVxMRVj zaFP`WtQTC{H)VZjgw?rOm69*PQyT9l9={nK54{z(_Y4DGBUD`^YV$V z!T7{=Mz)tUE_dbtH@MhvdVYLrHb1h5)5Q?h(h9-t%{*C`xPoU?#ex?ft{R*qbX8DP z^di6D4|G4`u_&2~PK-TX>8b8|9Ih~kE=V7yWgP&*0`PiEZkN@ZL;nC&@gCK;3r&rd z@7%yn5$eUi6ts?ZxIA;YW3waO z_mV#^Hv0JgN7z>YRhh5Y2k z8$lXG8fiGx|2eq#-o3kb{=b=>J3F&?^t|u;jpzB)gNseTB~uqCl>Hq}>8jOd?2jv} z`K)%1;9Vch<;a#$(a{yl%N9La?erE%UWss84DKjt>d?s2=a`zOmtJ%(K74@MN8H}= z_<5OxGEYmV52aVWzTA+*B&=0GdlMP?DnIf1;qcyKS*_q?g7hEyW}m-Ei!~`|yZDB?jv#AQs?sRP?(()~e$DUH&jnu-}4WEVY*h>FC;Zoxz2iiznzcfQ%5? z)KcR&UbU^CdXD?L)3$jUc`n34t^1PbD@wX7eWUhr2VWma0oj(UK_DD<0f_XGH^J*y zRSbqfKuOdNiOE0m)&((jr!;Jyahn8?Qg zTF+)SEUm*K-CGH2x8s-%Se^+Xh0hcaazqdjMUkNArp8z4Wxr{_(4qCgeamuh^~%#S z9tefdnWmrDNPqTEJYN-x7#{O)6Jr;VTZPHN^V4rq&Q)Hks0bIz*DMt6Ym4Jz`q@z; ztD>yD8HJZ3)I9_#sQ}b*n04^Hk+cShb$`B|PL+|o4O$a|r%JLY7eSm$vR}L2!X$GH z3fk*rWWzAGE9-XCSFsOx>QaaX6-AKluBlu#=+977uwH3!#q2oa=1@p4407iZcW`A@ zIDE{%Rkp2~?&KUHzeXp7o=ZuzaD}|r$MEX>&#P_sj6d$1xTy_W>O0^;J7iv~!wsfS z2+dIHv062s762^yG6w?JNTs#US)g`?8yP}z#h>+LQCWUrDuW_nDgaMdiik;=o<1F5 zriB_xaKvGgu#CX5Q0-gmzlq=e1UcJ~)w`aG677*>#atiiswt(cE*_QrMV1-Rf9xP5 zL9PE&2f3N?Zerq9!R1JF$@d72$61O$*w)B$$8)!mk>iWl`s8f-7ccnB9v{}o?FB_K zse35fX)Xxd@QW|?%1~Z1L}$YO=_c}52rRHOVrce$@ke#A<_q+e1=W8OsFVjciPiFA zg;rX=5%u$EBbeY^)=YXo*i@V3)crQ?KlLWx=cr93w@0;q17vEI$+t|*%yt&~tpM5s z12%EhpYrd!F&V%CC1d8CVk#!xa*Xsj*#UG?b>8gdCz|jyqY_9xQq58Zo6BgC87h44 zwoa)msr`27?SRhSCb+YFU%dFXLRBh`(v1w>%?cV922r(29F$N>N=j}IW;~u-D(E>m zTXkywONE$J_Rj2~&H>+Z!ly}c@!TxU^*hu7OQ|HdVlL?f|` zAkAxeyK;nsYTC5zmTvL4VC1;8Dbi4`-A?0wWuHRHrnEGI0*}ki_%4yp@ zGI7^ld$w)wQ1vOm>lXYles^8pJEs+W!c0mb&e_cEPOkZQe2=r)8g%yPnP|fMx328Lp?IY9zyj;_~6-X|0hn zsw-oVu#dV*UV}mP>|QFD;l*zHZV!O0U&v6&0^7o1-&j+L~@h^N8`rvc3w|G z=dt>AzW&t&3kM;=n?Z=1w%+NB25HZo;+{U)>Q1E0Q_2yIYHDQBEL^YR_)5+(>xqt< z^Zu3OZ`Bv<<7uhT-LJ)WVn^ENmUbfvjj ze{24o$l5jlsm{9VBgt>;@I_%}susboo(7V(y^?%PYZg1n(v zGuv5j`}#(Ruc{R!oyHzP`g z(TqhSv{Cm>G?PTb6u9-??}XNtH#J}M4JK48HCrAtV9E}2{S>4pGom3QaITw|$IUcp zBse6vY0tCs=&mGGQYjB2Qm}};*;C(wq<)dp6YaZ#jBL%%$9}n~R9!Fz^z4z?IZhj5 zl@w>(H6wfjaxRa`&Ub@@k9EAKXK^vS?Vneiem!O%LQi}bNr*$qR}N&QRqg1_gj4gf z|Al9`pRyJ7#E?)K%6^F9! z>-A9C6|L%#**g>ZNaiRY01nqFfAZ)@q`?orSI|i_X%}Z66)X9|sTtS;)2DB?V?tUI zi`;c&n89*EA{+{N0bkG5Hew1r>=&DCU9!USR7g)G;e1M&+|Y;bHf5dPsy(*CiXLnu zA|&9oI{cXIwL&E%Zp?q;lI)y!8Qh<};M(;PWb)doH8Rym%}oQpZv z%AFhPa)wp(PcEJ7#N1I+5Y^iRZLs6gNFltz*4j3QbE#tD?M18yS&I+!8uZuiKa>`@ zmVa&WHj*$NC>kI@;8BSTqH+TH=ju6~18>MDqdO(Vv3TFM%WtNCc?=Zsu6H78*5%>Z3 zgCu%RPvg3fTE=8AsBJve6ofX)(HvuU?x<-zcPvrM!{R{_u9BW>zzxbI$*QyRQD-C5 zXHDMGLFVh#(JP$NfA+VtfGGpTTaieQL&`_@L7!q;fuONH{+DW>%G$-X`zWs$z{`*X zhJ=KGmRhGQpLvJTnS$S0mDPW7N&junV}6RU;ob@Qgk%F5gg*``%_T_oc{4rpu4Cn{ zw~E=l11q%9y^so&WjU?MN@ zm0A7(uUaPFE$gvrEmBKpMByFv$t;3x+BC*)SOopen{z%z0|`hDN##!A_vIG9+K;s1 zLdnS=u9{kpG3z~6vl5X*I2@N5G7Q51v^wVvJMV4)_46a}qbERBn3J&D591L69LyCm zeFc#oveprEjkuc{$_pIT1}XF*aa^{hjWv{?R1a<!ziHAhRU z%-fk!hDKkX8Lh|oIbm@lUy>6KGOi|&CC7=M=M}9`sLr$=%2!)`hWrsIAgQd}15NqX z_j`Za69%d9v6IB1W$+aB+<4t?CHVqCn_mIHh?#Y8U;@D=`3usATJX?kSKr0g4ng_r zM#W&(7Q+TUurLoju_dO4*a28U?N2(j&O^lwcKaG*xMljY2Nm-@vQmYHDerTrs%y8r z9`8hY!YBI3yTc|ZSR;Q}`C#VTpzLPjZSYqTZ^anl*4r3*_1s-4QxvKaP<#e48yq zS8;%Z1*%fYwVD!^gH75JiKYJc7AaLn#|^-hOH#Vcz?#I=@ed+z;$Odh@FUuwMVwCx zks$Kd7u>D6wrYuFm{sYK{6+K|%J-`(des@vr6hwOxJnT1y`NHhO)$qXT9S*P=Q6ds z;<5|@Sfw(wx5(hw8*nDB-ejYtO;L)F_>00JZ=A<+zv=sLmYD*^E?A?;xMXDC#Kpyx z&FoxJUHEDSwfOsw|Mjg;fFI!64d4ep#IPJ#ASHkk1bz72S6Ug(bJqkNe%Q3xFekFb zz+=fltz!E};HmsbOaU`i;7By^JX#13!B)K*aD>+EZrChz5gk7zHWmqF@?9jHmiaND zX%|+F16+-Q=g9>8yDpego12?4H?#-u0|boc87x~x?7R_x*~5ShKqs5Y39jq`Xu|sX zFzKX!ZE-JM{qGNb1Ia0dd54rZ8ZSZD*=qPNp5|S}^e=7%vs_qDQ=r8v>xhS@!OOSy z4U;M*(3$A1D7U=$l9@S)&Y7b~%XtrPvk-&=UvtKKn}QaQ2r*GH)s#5#2PTH&F{W(m zscuTWO)zhj+q~-?RGCn{D*Hhw8S#HmzhwHGH|HRCNXaig4Fzs&%kQOmACNFHe(eGn zJNrKX_>RfMZVsh}q+%j52oTWl`}?Duurz!YJ*hCCK<@M}mS7UrZBw-Q`S*0taQo?8 z_N*{nmc50HFMYVOG`hb9A4D&ZNH0rd^WEBNyAt~e~QAC!jnFY!ES|i_kwLYYQ6AOE=IaEnU3_h`}i$G8Y&CH94_A~*03e%O~!k} zZSLE}0Db4Kn6(rk&36V7lrG{nvx3DR(@>Bzq_6| z_#g|oFDWVf>*E-=^~p8R5I#3zkVq0>s45`1cj`B;B11I3IUSW;`dz#_l1tUR*YPk;iqM4=qG^TCdL6m&Sj1P z6TZ*E#if=9_nr-CTOyYMM;G+iCQK1N+>97jxkL3^qWFvKx7!j!n1y4w!9o3Q3 zE)Ir4oi}4j-L(6f&ZRQA+(mM}JSAP0!Tl^EJR#w5AhT?XsTT)ZAN>s;d1oN?gg|Hl zCV}fQC6huN2^W&Ev#(b{n1Yyid+%pr@GQjYv*N9_FcsW15k5X}fVglFZ$zaRZ9?Y7 zFdLiqhy^<@?+_I-7y4a5r}|8v{r$TC%hA-@%k5ccn-?j>GG54L_rnxv_mrI5x%%M4 z*aZTlqKRrM|{5+fSk|KceC$cYn#J=BvxW{YDR#00|yuKs*mXp;IeRCJRSO5^A zG8l*!FOd9-7$b^S%hh3mU{2>hlO3zzJ9BgbT z)J9yuab!Q!+|>mhWPe66tUwRF;TLHzTMgvKep9NefzA&g??5!9ALr}t z?I+Gcr@|x#Ih5d6&xX=yj?e*;;nqOw(4r_ZrLV#N9~h*Re15vvA_XEpe2+{F4WEzN zjF(td99`V1J&M7EJcBe=X~iklb7kcg5EjVoB`uSEP>KC!W$NlLlf6O+v-m|Go8`TS z^9&dabD4vym;IO;!-bxk{HecuSMjjje;hGHore0pWAZYgPS@c21X_~|T#f^NvHKBM{8qupp^U{!rz@2vpOFR&s0A$?y&6(746 zjx6bo4dbBCXt|WWFG{VEKfYSF0}X8ShP(Cn!7LOxP!?1`>Vv>UJm@?`R(j%TVq;@L zw8HCF{_aUZPQsrX7W~%V^ET}wH|MXSeVwZg0~xZlsGn|XqoL>)+iDTN1cCN|4p^T4 z$=8#hv_j-FsslonOeNZi!LtBm+Jp7{KP(DL9HeJJUtIbZjRNn#?>QEB!i!%RddN`%06EchZxiGdH8eDQt$B6jI5}S}=XI$WgsT~T zO5}Br_&$GW?_j6m(+WsWKmZi(A=nNFH>Jl?A+TIb?SKQqzynhglQiH(e3gn!*x)ar=<#Bh^+M@7@eB~p*}Qdz0~Vy?ZakmPIXwQ=prRqdc-;B@ke?MA zsad+-{q=g7n$XjB>}4YBa`c$1Cvs{c)B-UVd`7pf*~n(3yt~k$>GiTU>%M)IkW3gM zS7+_7jC@w78&5Y$R=7}hI(3@MHdL?C4_Iq94Kwg^c5J)qXf|0xOIZ(MNdgMW|M9Gh z^V7`OXG8a-q29Y11QI|fi(o6ezfG; zTq0s@uBiasasXlwz_h4Y7?&vS04=Ip&cQ`t83aXsJ)G?j4=A=72|LdF_-LU?6AXj+ zOp{0ZtE?LN@tTx|hnYL1j{!!2pB}XgwN>!e`zMp4(?d7|lbBh_i1>AUi z2SsegimNeDx0!uhm+*-hb74mGhTDuBsJlY91DWv%LYh7ZO)6&u)q(ov9hm2Dy zcM^`mz-36~fk&4StY_upLw8Fe4rS|s9?nfi!StKe-i%H-`}rN`sQ3Vp%wAE0%Mfaz z0I^)%3gvmQ7c(m*zlf=ZxFX;dsx!xHJj&QpZ*XyyK<#L6yRrg*L!M&N=TK^~xVw)T zoizyVFI$8G#Jp`D75kUSBH<7~B5tLC(lq~X{D5ia+fkUAWcLN$w3R=h%~&-l0f7oo zQd{~c2&n+)^9uZzF;VZ&DBvO%e?f8yR3Z->sz~hqb8& zK)?-gtG5PpS`=Y{L7qvDbs~?QD9#NA2J%kR_jnD@?iWF7#}u_3gn0nbb#B9)&DCPW z>2T3tD-?nGoD3PV2TiP!Y21_<`KH?*9v^CXK9+b<7CqiC1%dxbN640~b_Tg@k*E(x1`)b@SxwZfST3!EFRVpM~v)1dX_fb#~o7f;j`ASo><$YL=JC zZ7i!BkuLYe{K$YX6tUt|67kn0kaMqw;X^B&kusZ~2ED^$vimCe&El2krs05H089&1 zF7QVKd!Lb(mL&!`P{SA1Quo2=?5gOP&HtL!pcdxRKzGnH0J3^NKR?D;bHD;JG3oB5 zAFmZw?e4+9%345AEg>$RB{sbIBVRI%GB5lj637CAxIa2G3=4pU1-jcta5rrY8U)M# z;N*(J6zRetK<4sP;{%Nv?|KJPD}L=xqcHOMVaj97cRJ*2YiYU4>Ca{9wND5moAql)$H^O*Wz_cS#U zhjUz-3?lD8q;gY|9PKxarK~I)jo<5lxrZyt`95{1*jKO{kD*!tTuH2G*@Z;y#AUT#4tM zkS;*8{;2w+M+?0Ruf$5Y^Qv404G9u&4dxj|-_}xI>H(ecV{b>tP3X|vw8h|6Sc8rp zwn}FLe;G8Ukn4q?02$DV+hmX_Wsd38Ams_8K;h0xssl?dDy~-QaS_W7Dj9NVo;uUS7J{yMZ#Z-ArF`RMbMcCP3-fRL+tgB z2owa8md~C!x#)rmoG+aH@2%s(h`i4G;kYZQW=p?(*96l4aIXE*IAp&U*~ctUdC=#>ox9Ee&&@-_9KM7>|1B$8WkBgf_p;CrF3Bk5#oI zJ#~UAiXB&(prO_4mHY(JVUcg)V2lD~Qu+f#kwf=(=AnJ`hP?mbx$?qbh4Mjx#>dRH z!_-&)yM9>C!n8-PSZn&^HPc#XZ^#g;l=?!s*1qN1_7gpmWO*6AbGYccpg7&QH8s6I z=VDh{RR}zwPVEIM_(`m_yUFW;;m^%mh$@Pq>EHJrE6}Uj?o(0d&r*@xOI#gh@?8)f zQ|`q?0SAO&!ZSxI8dDsLDnY66J2&h;uTl>ci5=E0T0&GQ$Q#hqW|C~K#pum7I5>|J zYdD?-PcmL9!H%t7z8^Lqc6u9Lj(z1vis3Guh}Hu?rd|kOrwL{2 zC;Id9^8U)16xu6&|Gula`6eS{kTGNf=BP4eq35QiL=nD~&@^bJp>OuZ$+%K}9`Rx9 zqTNIBvy*_@mK#S_P6HJ#(q-5GY_F-a@QAH%NEQ%27 zmbY@yt7W6~_4V&uMc-WnIofBF3kRym+mJ$k`EnWDT*bxlcOHpqX_2mhkP_!QPgh$T zP7p*_F-(DklKHwg+?6n0BbF(7YRXXa@m&Cefo_>_adOfte?ooh>O!$iau#JuN&ni= ztG@G`3CobTd*L}1{1Y(Htm&qgh3b)_dyvV#tSl2PWqJf5`{5B05OQo1wIlaBIvUadU|QlasEj7c zN=sQ78I=PUXk_1&KrmyehTdpb*A)pbs9?*>dD4`5Vc%-2rlDy#wbh9(b=xg3EzQkp zz?`r9Jx`(9groO!Qd)XC9}iDVTpTnz(S$Gqv$c;~CO?M`CaDqX)q0W!0jqfLdpG~4 zIFc~VA10Ap@;#lt24w<_dKX)DS?W&lPfPnj0xk%+TtRks)k{tlc^yuDU*86(WdXo` zWNm#rM-?HiO%UgQ4`vD*15_^`&r=9Fg)vez%XjeidNb{ha(KMAq?}-;M;`rBPMSb) zy}^+KqF*u}vk)R4WHA49u{RM%k4gF}i?kPU?~~>!4z{<4jLt1Si8hnXRt3I)*9Zn! z!j*pIvaU~cP0gbpV*O1p15Fc`1&+A8cLzRxeCqWGdx4LS4*~Lbn)H(2&2-=-HhlcsscDujs zIXDz0t{O~)JQ_}EBBiEAXzOqT<+ae2)NWfhj`fqoKz?I=0f&;CyQ$aAx##syZy{fP zob*qMw6y*p2}o5+@!Q^RFSF5+I8eizR-4`sPT*n7m5z`|;47)xJ`C$W-o?>2?``zj zd87zhAVmTjcqO4ojX!eQdHsq8QtOLh8@oT)!ogl zu(S+hIOmA4FI}P%1OsDQ9BA;LKK&zBJL(oI>*}{c+Tx2^nGe1Yy@LvT6X}1SBrrHQ zrCm8)HrCM6vSmBlgb3p2FJHc#c{92d($0f}gQf9{Ov3bCC0nyac|q8*w8dboU;gCN zmoGDO-6?eZaA9l_PcgxWAD87}aas)K6?_38R$6f|)QUg{WRWVAEV)3tDscPuZNRvE zEdKBk6RQ_OqOS-aP;*)h;KW0r0OQwjH@@b~&(DLY&W8qeD{^1|qA1+ggtl_VltO?_ z0Z3r{@J|2N$26j_P|>}iJjb!#TVH(4akIgn_$YX{ugT!}-d0%CLOJEet3&?tHmL!b zC|QB(aT8w=z4DRw=_vV(K>H!oZCGFe`cYBEzqjY+4FNDS zUuhpd&a-&0%Yxvwf3mRFetf_c%JiN&C!_T>6)@AY+I`-LL#D1I4>w;<(Y@O2@?+b zX)}eA`(H3?H5Tz4EZ@jR38**qORjk!qWoIIdK(pk^|;;;sq^m$eg1Lo90))oA|s8> z&37k0oyiuW6!y9vG*K5@L}nf$RPF&rGxn_rYEVGmPo7Utrw?r|U$@k%Ghci8AUa|Pp?PNhO>C3& zlj9>nY4N0MmUIt6J}Apj;(Zjy<*~hc4!2GEwac~JJ~8j#f1*o>LS7;hc68N?s;444 zk2Cjx(v8pAx|x6VTeepPE_l#i-#e%~LS~3QM{9m^TW5TLoOu;ON^25NlMbUJXwFtV zezkK{1pOUI$ck!uo>t!GRY7#KZYf!nFVH?$yx%8DarEpRT65gmLZEZ%m#}vdy4lD{ z7nQZYiadb6gBq0IlQ0AeRDM9<=Ja*OGb~JlzxZMNghHknmoFgQ{pEmqlNrAdK4Y0Cc99*j8cf5WCRUnn^<^jBCn!waBJob|3YIv>}QJR#wDM z*-0eZU4n#66wIVZlWm7TObus?je$XuC353vCZ!r9^Y+V_m_2HGHfmb^2#|doXp)ZLik@3)2uC@h+icvG(Kz z&@33~j+~uBuuaiYZ-tFbG&4?7koU5}itt;YRYqhoz~2$@Yaj>3Q5WN{zE8~ho@Yj) zR%9R2f7|DUpZt_%)}a_Q>WCMdo*xZiV!FE3-PQanqLZHeu@2hCG{!|?6;h=?z>x}A zNs09kdz6Tc4a+W|1P3suIxZ##hm`&7)#^^1j0GcS=Tco3ZVnD6D3I9tB&j$#Rg)Bf z05hnt{{acTFr-c+D-rCi_=SL`0n4<9Mr-Tnh>7bn?3F>|8Z$Fv{6rK?YvIKL5USkl z?&`WZ-`g}cM%mL9ES2FzEVp$nFYi^SbE?q0d27in{F8FvtVpp$V@utwt+473g<}49 zGiry9zOTC2no@SM?!G3vO(=$YdSv7}9K0?|y85b~TW~7Y9Wm`cX>sRCj-(~;VO`l+ zo6lCf*(|2$=KqO3z|P*%W!k?lqca~wde;o!66$BcLTmKxYXU26&GAu{B67I6aAHOc z${*J&@iiYvxGTh~jf@(lNHYSG&;fntp{x!q(?=49f9mR*?bz?juubGwpP)mgiLCvbI zO(qQzUZ2JpgrHkRJ2?B`PSe8NX{CHZ-^0*P(~BrzYVPm%*-b{uWPrVp zl4I5MHR6~lDNkFlv#l*MbyZkuwSTdH#YdL~ihcom$1_ZtH~lOs+c z=vNQb4S(;~?-mrli_#xM9lDc!S^e@{=T+JlDyJam8w(4I4maWeyxnlw`3ffvrs#)7 zM4S=7apOi`L|hyI0xA+x%SnGEme^-+ul@KCJQ#lv7&+%_FYUr;V8x z*@p221&6tR`OLhL)O5LbiS+)_W5tiKZHI7c^f0pUEmPO1=%LRiF;VI`vT#J4`rINZj z@%5`q0C%wpz zp?sY!{A}Mo+OG-21y8jn_8Nh5MgoU0E}`^HvvrlUyq!E&Sc$ontDEMp;PXq zM|!gQ75XJt&Wr~{3>w^^VLpHE93L+)o1nIe12b*^{rkwiNyG(sW~Z(ghiTkPp(VLZ z=5ktEL&fvGBUO&GwP(UDHU_=c@_$wpau|)f&#yfe#XMZ^vb7mAb9v4?%WPEcxwK4_ zXfWGr7329ESj^cQeiuVtQz=J=hCVbj{EWQEcE^3woQI*!KUWz*cwF&Ki#EV%p?=Cg z{CU;t@4Xt7Y;YapXI-9C)Wzq9ZXQr9SR(*10%@0o*&vvbqxb|wI6eA{0%p`f!zxWe zLLycQ;3Cik30zjhoTB5`==#=SJ+?y&`ts#<3JOpt%ES|9!o=SW`)vKy$W*S!q**3V z;^^q;y&btyR4kU)Xc?1eZfjM5An8_+IABNosMN5$Hi+0FC1rb z*G4@YS4T5kM%}=)hmW~v-v&nP`t|D|tOiR1V4tEvU;3K>gGcY} zaan)sf+?}Y+MM*Xw2-{0{feA>B?Tq)+`A9#SG3|_hk;K8 z`3#_n?ZTaG({BZtn~EszYvsOJyAF$n%V%Q41fCu zg$9Pv=zAWkoP~pns|U8moSYn87D&Stz@1e?fH2_9>C;kttgM&$Af5mV*Jm5B8K}_) zip&&lCQn^gwe3xB$2!+_OAP@=AqrB`3gBWv8}VeU!oh#Q-q8_L;^n#ljUnkVsYg|K zMa$|Uu5t^z>8m5hci)d zAF*xfESQ*>0CxlBbeTz%dZ(nxV~_dwCaHdzoeR^Kxm7Y05H1`WJY@mj(6|O7F5YSf zblnCSvKma8W#3$XN-SfC(zxS1@593svTwSqJDZyoZxVixp~9tf4ke>O0mBw(ys^F> z!xVpT;8~%IXN5zS>x;fHSc@5HZag|VDkvx@O_tq@&;F?91RS4$r9!6#W6o@CSK+0Z zzHB}%eTl{=vK%Mny+kWt4Xm&THJLYX!NNz!CcX`)>p33STjsQX99(K1`n9w36Nzss zD~p5Uw@~l`z7D23pU=YjJCL{+r;ezpsru3=5ndeH*0{+rons`5TpM=Lxa?zhDBGJU z5+d9CI_;%8_V3dw8ZA{80iNSi$C}B7TEiL4AzD+Un&wKJ;~Rvi7US2vZC8OJTwHnC*gqT zms=n1g+Fhm^2Lko5AHJ8Vm<>O%L1wcH#gqfv{5o9Ha06Txjd-_0R5Opj3pl{Oj?Pp ztQNtC464RREkY8K^R%Eg5$wI_xH>l4+8X>L*W!P@{YU}0xMP1US^G=A8-x;Sz%nwKUq{Yl-1n9ubhB*t) zrE7gUTWj-0i@-%agx1=G)yDn|;|nzjYVUR}T)joBOf4i^47uoChi$roF|YHhLX#ag z6W)YU`cRelVcJi6&hG$6FnUm+X(WhmyWPHVLwp;JbOl)fR2y^_NnC-BTXsv|3Kh}6 zCdH!WJP;2aJb>*I$7#WC(L=ZHEH;~L1#cPdEA}nR5ZC*}Qp#6IQ@f}+Jn%`GHIQJ> zy>T{P!0qZQBrui};HL?%IZC)o5BeU(7SH`z=n#L{?=^;ylPVo!d8uql^lOX#z3m%J zLdUp!I-n@u!b37^e;aA#eGvcbS*?L5Z%C@1F5i6#JaP_GDWKVwVHDM9=}UChLE}sR z&4bPi814S;8>f?t3!j5C$=WdhI*Ey8Sy_Q8DPs4(bm379KjA*>i+z#Bvo3coud|}}ckZyU z*^HtS>TfLuM(n6wi0x8DdREfs#wzsWsCO>*x8^*zEv{r&MOfjk{PdK8G8vQs9osaO z)69yHxnd90#i~P&IZ=Qu#6c-4URi_kNNyYLfpF7N&*BnwXGpuBYVDC#Y)P6$y^x2# zR_A$F_ueE8Hg5hN+F=3Hz};qyj~~V*UFX(HYq>dNMz;EVax$gW=ls5omezBu^E=)L zbUtUX^DN7)&aISCF8mws<W8yb z7_@GLnvM!cK4N|oc=awcpW)2V!!kx8(VLU!IC@!FST@`5HQJp*{HI-M@ML_Iv$@lrl&Hrq*q2OloibR=9moC8>F*-6r^|HEa4cuU$ zZvyG6v7Zt!?s#GR&P!B7#l@VO={)O}(X_9`jHAn{qDakKl?V)e)ubKz|3^S(e?jM61S^(Y>`dw36KSP@+D28wCO`E)2rLtE&Zw1Od0yygV*a>eZ|( z>`6&?{{$b~Mk)wk4Qo7+Xnibam6NzY>xl=Gn;&^_i3AguCvMyVCamN*wpxFUI1_ab zA}K_ZV6q{Y(OSS~Kj)JdqbBk4+9@>w0Rd>IjBIT$TLk>{E7X1qv&@Y#VH28~QUZ|x zB8+9Rn0$Y5W0+mJ6@X#BgELt^3y_mkAApbe#Dz|9v7QuFh=1?()c34zKpk(*^isvB zjm;}#CF&WoyUkS(|L_TtmtR(XWz7@+f%2+eW%)E(cdl!Ic@@Lgc>lNgXMLJPUKYIbi@4!1KG(lr$~aE<;PJ ztF{&vq%a2i?ORGhLOLS>LRE7)cBredv4dfSi5frv#D~FtNpRw5rj0=R$-*L^r3yo3 z69}CM)Dd4xEWoAko^O3?%h%D^nC@)k|6r+TYA!H`#suV+yf}BuvAIqEg#LMPVpA=bWWTYd6N$?cIaQ5@(&#S2P!X^%<0eT=7E%DVUYG!seJQ;Kb zV%?yrG3PJw`8!%rz_hhi5R?dUoRyAt74FQw^JdE+tHGt8&s|dKT1~27EN5#2-{RZj zJ=*g<2F!6bmX@aj0US-5@(VEtyO!jiba6|3DY4G9{jFdv&?Mm|LIJm@TXH(dA)##g zZZieWMg3yeb1yBApK*oO#=7awog77Okbg$zVGW*n)US()%U7Q$Yo=8z_}td0w^vRr zro!8BsFjkGb*<+lV-W31DyOmO*FeCQl`{wtD-E5Rnvw$M^v>7)q<-^tSeP5@zlD!7m2r{$x~Ke={n2Z`Jd4rGp-7^?>gRN`@z*Z$NMg zYRuFN*+qR#z`u%Uiin&_g&rzfl>i{QD_5vgnBv|a0O?G7yOIjqDIz>vN<0kfDnU{S zF;36uD0C#E{%s4sF2%WwkzjPX_Yr1SXJVW`P?kZxd}9bmyswOfrKMvfRwN;qKAM^4 zI=}NvLL>~i0_SmB7+lGJ!K@mIgWXEOy!!He9l@P$|XsB&0}3ci#WeEZH_R%kI?nkQI*E(aKy6E4ysDIdo> zbl2kSooy6u?>#j1{djT)C8KX*(4KUK#IZ^zD__w^W@eK5ho|LtzlpuLR2X`3%!55>5k@u(h#a_3b^i=Y*NiaDZwc3gy3X zg@R&vagpD=i%Q#lq3_nUpCDJu%Af=e%_!<)JYa4w5|>WnVelt!NdRxmNG?3tS<$P^ zNz<{+H@VNZrGi21MY=kEO+HIXIs=px-n@d)MJ(aH*{%?Tvh+1Q)eC#EkJnkQ1w`a4 z=Oew(et7SgbwyK3^+GNwumO2G)bC@m>@oLa9C5wZK2E=6>e0IsB7Vf$zrg`~uwdT! zhV{8?eF@@MPY_mR)1x@PT}pGqP{+!Pty2-Pa0nFwzm0}>%lJDyi~A=G8{5k zLaEI^)?r{&x&xpw6nu`ZfE9f`f^p+dp827Ol!=o+LWvn4A74!A>GTh3z$sHmJ+tm} z-SI~_3=6-yYYpCXZOX$xxjh@(5Pemg{+@_z;P5WohKle?&^B>AiA9f zvP`SeOneNEqvTksfTp|=W>tHno34*pDDALNdRS}ueo^p8M=ZV0dq9mHMsyncqTvYF znMLi+T&CiGEf(i`uhzdTmcyZr{kd*5P6aYTNWb_DL zB!R2^}?yB;?4C-OO(J1o3ehDq5wrn74Y&ux9>#bsr`%yoad>VN6zPpH3Z zw%EeRq~I;#romPiuQo*-kd_q{1vZyK^h?nj8y$VV;nrSWLTy1GKi&&p?$3!< z&Ju8(3za#Hdc+fp>Besv3UNmj3qU^+?gX1^ZH?L@kXh=ic2P;m;aU?ydH|Z@-rfje zShY#=w?LtJ-rLZS=IhlhjJbl&V|kcME3H^dQ4zqm4-Y?`)-Ll>_U>zfbptJNMR~a+ z{2!nsVqoy6c-E(}kc2KrBN9KAl)#r?kQO{z@O!u}m;Rc0`Jwcad3$zafX|Gh7*j$M zp_D#FeCF}@VX=lK{_&4Q2Q@na0AFKuTzcmFqATv1Q=ZuXk#?JumdHhBYEFu69ShLq zY@I(LVOBb~zkSo3-4G9j<7s`Rf5OcbgWu>cGmPu zC+Ar0k!$SY;=a&z+j>7@?7E<5=O`#B82idti!J*_vs6R*FWPT(c(~WP3zI%HGgDFZ zR5QKzzz-%Kh=Q02P9{2B7sfo?R04N?&8SW@Ad}0vBBT%8Gn! zS&!76)j!J!j>SvNrm4B_?!Uf5hP$7~sfq|g`(PSjzak2^>HoDE1EXrnwel+)wg~=C zGQ_sxc73j{feDXOpSOZH)pYHbQPBkgz)AFWAAt&sX&rWN=L6d(I#+7el9dJ82ygv%GJXZ0oO|dlu<5@GnUf=bg((b$qUoq0im7% zuW?65$C-0D4~hE~z_#@U@=mNlVrpG*C$3Q=u!B6e6>|#8>>mp6PzrwyT`?nFeV#Nk zztj1)C_%JQk3&_}DetFVn-trcDHqwcj_JSGIIbE0`adx_ryQYySH6CD2fyltILsv6 z+$+ESSU>aCz`6@}I7`XvCLPDfQWRh4lb z`@suifhcYMRBoQxnVEa7kl0SEMSoQ%^uhz$CE${PPA?Z1O@JGKqz5ig6*Zx-s68*4 z*Jw>R1gx!>X15mx;-Lh)6THCSo+<>8R~eMG*0!S(i);=V`8@x6^54x5u>bhDd8gra z7fQn1?vvJ%WB!m0y|O(@eEMSm|}=1 zVUUl9lyWO&<*Pi0hlk9}%#e%N+uNIT;WVVch)ww#3p_kJ*b5c>Q)mbM3(+M&%{PCm z*NUJImD70`9v^?5fS?|83zCwNi8era)6~##E2;%dX1&Rb{gUh4{9pnxA0Hef>4B(# z5ynVB)?4)juXg3<=Dt)@z1;n0J#S=W1Z8^5_Q2y}N{-b&B9Y!*#%?zsCsO>a?ty{V zi+vq{BK7j;$ZgsERlEb>CAp(bEfALNXV-x;_ZtisSAGDkBiWUIOqG z0PV+ALbndi!!u_3`fn2x6Lne6XH-<|fgjc!qlc-fu9k{xb_LLf?hUY@E7(i@IV8qF z)57HGNSPb1fJV=cM)c@BWQWe-8f9yi^5S)1EdYdK-&z#?xA=-SO#UzB_#fhcH#}5J zy3X_DUZb1(;~H^PpCk)_>TY4zhz!3P5L(n)|;CE65!Rb(D~31lwVITU%~!Zoml3*|zWSy#b%oPE!0fG!zz{ zl&@Dc(Ail4odg`LFoin#Q!0!WpwrOMFn0qndz&-W_utjJi^~qJggH_P4izg45>EC z!u?Gn)f>5k9KriJoNGbH(9!2_FmtSNPzg%VM)bTJV1U)|XI1<^_l;+J7E0MU!18m< zp(W?Jkmut1_Tu+Wt#`9+f#Z??VfHeNX$RtCZ+3g%DV`6ST2bUJ8Z~$C{ zk~Ak5UPC(Vq#DMA1sBbbzEd^C>?b6Q7F+Z}Ce1}TC0<4285;4nQ!jjd!5_^0Z*gX= zhMMs&(ciB^k|Y{0f<7d2rJ(0Nqv`lwy7%$hP)!U2AvKB|=ipjyyk&omGboAPxW)d+x-&|RzajKU72r*;a6|-;v(~r_+*=ygx*!RhYbZ9 zBS__s(Ni?&R@v$X$m9F>s+N7L-}D6(BTX!sGoZ}-by*msqsB?tY07SMUDQ!%dEJ}n zrJ_#Ng`d~N_~9g^d$hN=XI~+3=Z<1E@huvo0Ykd#g_J8-Y^|*J!Cw-dTUAw+k&z+e z2rq%LqZxve?;pUu0e1?W+$5g<+>1UrMP%euLC*`uqwW1s%=A1hK7yXHF+D>g+6p$O z_G0pkF48VezqrUp7r1su`|BUlC3x8-1_s*MjJeswlw))sh!c@u{Bkq7TCY&fmHdQg{0xSn9rA0+Lm5y1>KEANA@E&21!Mz7EGIwo8uHoZP zuC87_1@=FBFH@44(PU_2{Tx9Mk_xsEQJp9D_Q}f0ip-`;P7*X&>YfnDCz|BCId`)3 zRpZ0H4-fO@uyJ$S_Gc3XhOxU2T+Dj&4t=x1Anl@>?gvNH#evm>?R`C)ZXHumvwQAs zASJL%n4<4{xU)i;B7xOyt*BUs5?Y`33nc&le`q%fD4+5WNfb1O+Sa_%PHUho``ekDes{~lhM1+K0*7EWl(D}mCUZXz7iiZRmJqwFlTdC>k zARUdw|11G?_ru>9{I6Aa2p@QvImiR$#908qeCA(lVD6t(=?G9IfNM)8$oh47_-Tvv zbcyHw{*s^(X|Q4o&gQs!>-`k`8Q6J(p1UVo0an2z9fRrzi(dMunNN#V=*)WIP`*qd ziGQH&^J&NbK%93Gf*ltw?sW}U0%WNKCZT{2QcOa(s;7SRyL}?*rn`2!R+}>+^~@P$ z-L5^EbjJVV?7ic;-rM-`cC-nJkdZ=VL>um+R9u{GF=W|~9TA`A7go2Tb47b7D(d>=NjL{-s!_M$z0c1~I5HtDq&Mh$ zOWwIqxbw;mmxz>p{?QkgK)qx=3sO^gniz1&?WNeRgtPybQ|q@_*0%VwjXu7!#nf^5 z=xgUyw4C0sUuBY65 zl%Jn3;Q^_;{|U91UNH2y_-qq_h!+Zi;)%rX}_{aA|%q)Idj9VKD^<=OwHdlxQ;`U>}y{b>`ez8fXlmz z9z7a!|6Y=72{9AkP~hTu{}VH3N>YCNekhQlXg2jZMH0UWFhuiaI9w5Ph13CTzIKbTk9<>PU$+gFZ@9- zFV9G*<?%_qCPGBXxE;Cji%)^_sFrMD^!A`(oG8x9eu zU+Qo7P0aaEk*NQ>-V^*9tx0t4Gz{%0VyX^E@NjV*w^}?GHMO%q;TTz|>={n#y}N0| z;)U4r>E$k}_w7H_D#T?sM{rKtA_ko5OB)_#EG?<2s(ywXHYVnxzH~Ye9aa>cbXwy5Po5Ddj)n=~ zNK<`Pg`frCeUyz05wzoDAw8HQMq;)BSo64$08F-+Y3_atQNerVJ+guh5|n$*k=@Ox%9b*^TJSMj{W<_i~4N)n675=G_wh#q@;i2on?X7*SF@Z-mK$ zub`G1!v?4;r_peJJF6R?o&CMO-dC{u6aq`Z#v^Yo(ju_mYw>%or7=4@yWiq7XgE?lATKm=is0b9h0&>)N@3z?LvCFM2Y=_EcxS zIsk-&)Iw3F{4O)saP5Ve1GMkX70+X?zwwt;+pwkaRj$!SwH&>ZDmuh8PoxFvk}bxB zKesRrZ2c3KXE;T9xl&+@|6-Y8ieuUqmz&2_^O*dtqh7v36JfC_vfDw5UZ~~BaQBRR zm3|IJHR4SyT}fp- zjpc-IjPoTp`Ti1NiugB!+7yd>jh^&}DHTUpGI&9FfHE?TmU}*~310O3F;z>w!{s)d zJal&5XB<{zZryU)zGvF$&Eb~|8@P=Mh1KqKE$JxSFI5Yj+s8C|x^ZhA;|x-)2r@3n zf1s7RR4W~)v5}INb`LF7jl}zzef|7M)_yY!@EM?O5BH7RgXV@zoEqD@5>)_lYhw(q zy}>%s2;3Q2AS5(2k|98z#@SX&g;qCCpk6slbZwnTxRkq(rE8Xfo3>r9Xh<^^VFP&M znOUan$LZ-o@NA3+fhS}&=}hKD&smoj18gwE-rjyU_38A?%*Rd<_KhSEU1Mj{6aQCy z78Nx$6YwFT3+6B#yer(EZi$F-Z5&*DIgrux5YjR=9Zn>#ZWBS>-o3rNF0g!^63RU=LxuCk5iO_#_1likuJrKrLU8^2WzeVg{A!65De0neYPM;}hn%0nPnffO%2@2xa^U|Z+f-o4|P0+Wt(h~@;?vV0>h8blJ3rqugTQC zDtlToOZTrmJNQeJv|iNOSl?xF#7}ywqEX_>VlV)rrV4GDhSb;3-J&ObPQwG^-olg$kyTYJPkoG&$HEy0h@mM&Ni$v8`ekwcux{8<;DviGTn90yRRuqa@DJ|9zPad9zNJCeJ~%9OU!NDa7RV2}t+@06bb1qFq_zdyW_ zOZ}0aotDrco|WA~H@SQFZnW6BxZti`gP<-~o?)Hh_*0ozbJNUh3I_)QB^~FST&7wV zF_NqU;S=MpcBmiq`K=So%u3bZ=g$Q_iA)B$H}>EVBXV^aV!%(=00siu!0efkXV$kT zP0RWcaz0#YVIGpDA|>tW?3BKKeV6NHo*T@-F2*M&bfK`b3jYPWs%G+RXl2G&+)ya-OAHWTi$Yn|2KER!9l5MUzC-2lRf#{ z>C=*ZUjpan3b%uHD(^A%+EygE`apVVHmOp*m8luFMk;D*KmV2UsicI1o*n=3qZ82y zykHlNeb+a^x=F~_%2t%+j9hfz9$vYaa_iGg=JQKXo;mJJ_a!IW?`0uo@%*Z-mPi06 z3d6>Y8<|1_0*)r+d4)P(Iry-6hV+@}-?_3k1dU6A!5>vRUZ^GK)YM-L+4gH#>Lval zBDL{#t6SbZ8+l!xp_fm-EU^Bc&bPFkrr{swJAe69mdH+O%JPmi+7E^Y4JN#m0~g<1 z5fiezA1d&53|fxX0_WQLsNu+`=11j2ZHQ_uf1hlfJ9mDKj7ZX@6Lt3%SU+pW%qZ3f zsH?QpHR`8N-XE-uT`<|Qqu|o;DL>UBEQUA)UX7UT#0hk<3`<+P2nSl7pm0;T{eDRzcmKVR*jk0A@wP*ZF9o9t1S#LUcj&X)_DFZkwR zPrKr8acN!MXq1jY7+uA2EUf$Np_HtGbthpS(ugVv6MesNy3MlV0@GB_a}?F>Rq!)j z$;5jDXdD?W(Y|M90-C+x`F+;y#~nH1vIg&9I8aeL<6qh1@4tHwt?Jd~w{K~VURxcD zrfX#S_H9H0fXYUON$n3@+?H$WXj5W!1%J4}ZTY6#mz54b~B~HYHJb%9D%WRQi(yQ(E-V}V8 zMBZrRwx1K=YyQrCME4Ex%!9QH*2(JXu-y41B_8)Y)b?S=>cXnaix+!y?^{4R`z6oH z2V#a|>bww>6oe&;N8hgNErIy7KGOBBxj8S*<4bkyGw&`qZ9~S8eB5ig!!|R|JT`Xk zkW3=mjN??m30CI6T%V`B`S7^?`SytmQ_iSw4s!B`}vRY*V!*reo6Cv z{d#X24ORFp;S;|_tZFlN`NzJHS(C=iFUlRc?nRs>I-(s)#&j|zdKWc`@c$Xg>1s3G z6pXd1yj7tcp9~KU-*3Ef%;V|P!=Q1qur%mJUzlQEdw_IMkgpxL*Qj&6(!D(wBHKQn zF#=`}m$uTZo>INhKy7sQ#8dQu+dbitPXpyWg=W<2W^au3q zKhH(8&fJOn3ro5twKHo+IHqaDbev>o*T^)0Vj2%0-pu3j_%H4~wd;wyyVI>icv-FO zmnTG@U=-gt^NfmTht%P(NNfw8JK`9hB?6bz;Nb|t!STIO5Wn0LS)DT$T3t|5FZy)V zeBy&Xv>Xnz%YOIEQemaqFZoV9SZJ-TtnAixhi3QSo_MwELdhn%Y?wFM_KC&X=bVV9 z3E%8>J80H^vi>yP>$k1yOvcrL%MciD#$+0 zb2>iAYhsWyZCyZzD5+1I&PPXj&gc2sg=hzQ{*eAppJ zoET7cXMup9eS!=DK%;0a!#|FLW}Hdheua{=Rjg8kOIYvBP}E_QM<=wtKiT(hS$*D~ zhSD9M8~0{C(P}*rgCB?qyXSJ_i>H75{GHQV zYF+QjB-`(^jJ)r|U+dHR?H?645HmV%8tW2Lu z`NA1{&s0Bp`0yd(4C)MkkPVD%J#K#N?Gxa85~il6P!6lg%6>dq%>t1z;^7bf5MpqA zvZ$l4UumIt*Fw@RQA>?N$bCqYDsgwv8RO4fqb)~fN`!?4qcoW7p8kUyD^ln@KiSku zNv{UI)1>qc$&nLsbP0tI_PtN^IeM=8YM%Iy^{@2g02^Cqf@j`Pw68B&^UyW(@$vD8 zGmu!OOY^T&77edQSigOd&wu-wSW=$6PauJ*@&T!k&XX!W7BQ8Z2~2ybfBrZ3oU|C5 zan9~OhFQ&?_?%V-J5D>HEi1Bg3WJ_K>pD#a$f(x+oKu1Za{WHG=wz`60sR}xdz-np zvT;mHTS?XA;`9$vQc8sK%}5;qbL&VyGf*dbCY!YeI|sGxle|WTDQsSi#19WBGHh9#O&748qR=*}TPtPy^W5*aT9| z^B7{EX9cS-Zir95hxgWNZChGcFl^5YJZQBr2`lj3+MUJFY@cIebN3g%0XpS!cG&*M zHJC~LUB8vHZck)~C-}f{&+8naRtc?Uge0_z<);*~+IR6K-1#58AhAtled+IZcwZez z2Dl_-wE)7TR#>(vG{^BaoF%+cSa=o%z9W65EIvta@@+twWjq9&7nVUWanPm;YCa}; z`L~bm5zh@!Z3BiG!s{Pid=r}+V~^A0`9vQ_->sSAKDQXJ{~IA#;ENE{ZWl+gc6qdx z&^`C*lIfLwV4IJ#vtubxdgplj*|l z3Zv%KBW?UX->JqCKMFA|$XHkFhd}=xO#x11tvPwgE!*Zu-mjnM$n&JM<<8@Cf$;!@ z-kiRU4zI)N^1q18GooceK3GtCeyN%#3ax*R!Z9?Y{&92$3dmOyz{Ixi%I4O#HVpLi zO$y$@!B^eDqB6>L$P&8QzTHy1c5zi$gcRNnon1N&GvOGFFWL2lTHfSxb#dVVJz&2T zo$5vhd3i#}@Z{7Kl!1_r9Yo7Zpf=sjWPll*Cs2@xv>w&PXU(#=fNk(@(DNR+nlLqC_P3PQxXpNeR%NT+SX*B z5?>ZM2}#Lj^_jP>;FKWtkXTV|?Ck8sU@TjF$h(XMa<^DnNo<%rfBs>jsi>#TB~YH* z58wR!>|njw&yQPq_pXa2F+f(R_u((h{Q$c{k?#^B?P7JbbvvEyhm~mQX(>Brjbkm* zm&-JcB)YZUuV_dKQK-deX3a*Q!O6_u4!Q&UbGh)$h3qX8Ua!aeKH5*{)leCiYsNC6=yTYX8L2-Bw5 ziEh`Ot$lfioL}X!YJGD*o|16rG=t;6scDV6!8>5t8kcDF>*DKdbes1A4b5K7YQUGy z1XGGn@J^LK+3D1sTOL-;0^WyWWOx%#Q08ZMLQ|eM{@is=9)M6cmi=|JHAv6>leK;o z8hRq)4xqiV9@F0aT#ryT?)O*!#0Vo1vyY<_x2N|}Gg5q-zq-4bxE_EfKgGqhZO5K;tnIZUJT@lB$G&97iiUld@bX$lk(dBGzWL%d5 z@Zhh`6A|R@%E~@OP?ieSLOgORG%s|JqWvT~q)ygP_pe-zoTp1_{K*+BXd;#tby}^e=8{p-ZcC{DR(dGm&VsE z!BAEdShJAuY%p;kVDU*me|JJpUe={A!DrZUE=K&e)oYap9-kH??2!zPjQoX?iz#Ui ze!CEqC)hDi!4XevVqxJ|*#nQzQIWq*qBbisrch}h)(6&HJg+DkB1(kpr-LMV4My-A zq~2_730Uy~FEbS-WpxuX=M^!rPI0^VCcm>f+o^zA+}(x{&%&>)c0`DJGsGz7Uty)eD@I=2-o_a9Ugg71A~l~AFK&>W1YO&%y>_p zjn|nU?>e|Cz%w>B7FN6uh5Ao5sD%fK)*~Q7Lr3<~37Y?O5~Ne-*ORxql>T4FAki5a zSThsP!j6W}VQsiN@&EX8GWHgpQ2KgwjkbOHId=A{4Zmpz>f^J`>)8LdZ?m{r47(zO&J2GXJOW;SM5O)L zf7SFhCAx&jHH8>Uc#8-Uo^~=mGNt0A#lc^=lYeTwfVctb$nyOyWp#ptKK>5+_}C}M z-U{9yYV?SDL@?_OU?oJHE1#jEVQ9n4;NUF12DgKU_oN%^=n(D+A)!JzG1E@NbJ#_; zqXa60Kq)U)lnsET1j6tXe1@OlOy)>IEOvk(`7Goa9K*Pa>%=}HMWM(6IqrTBtILLv zdO}8(Vo#4rsJcCDalSlcK}ScGkW=t~QAH5Q^0?A7bNxScH8sCSxO~kINh==cs=c*5 zPr}Jb0yGDT`)?s_BFnIWeXUGLd-u*OIQZAVDgLLYII1n7j7Qc_P;l^y?b=7DW%t$9 zb8y@v>8B5pSR>Co502f|p3e@Q*8cJW>vDgzoauOPcyL0<*4%3RrUMqPq;z(!dcM}& z=K%P~-o72qI%sbn?^>Xip}V!~wJoW5%OU>Lniak^tp(F05z|2DojT!K~ak%74Q zj;L~eDq=JN(-Tp(4W-EAy)Zy91-SBsM>>lm6|8vIKGy|#S&HA&M{CP|k@yf^laFO( zPx3xIJ@15k-#xzw`iBX0s27nY{*K$bI$1*qgX^m;Wo+D&d^fIN@ATz5*R3t;O>r>A zegZKjIyx4u(w-L}Vf)QOc6Svz-*|o zt?m2SfhpSE7?hwumO59k07pvBztWp>LMKmuM91)V0{D**CJy<%o>KpG4lOSzwL?(x zh%VmN%(}GMEVr%o(9^|vfPvEQAVMV9vyu&$K6JIMc;srwZh}HDOk*%oeC2&HNXPjs zA4tuh9bEGzbj@z~2Vyci%Qw&z+9?hq+T&7vDLR@W2h}Grw1 zwrqjq$lurZ1tHw2a~IM+y){L)C2AmH7;kdfCpx=l~nVOp;rU+3#Oasr@k{egtDXOx~ z&szOq779^OiY0k-!3jLh6+X5lGH%oU@%L;UG>*l%k4V;jSZD~(g6}FQTpc8~4?fM# zY`@su@E6-yL`;KC7+qC`li79yxe)GLT*Ua5Z)2HxAZ~NN`=YYCIu<4WBhcmmIr*aw z{8L-Y1!@I$=VQl+Rz*je(_G~b{yU>DLU0pWf_)oK;JdgDttYzHPRIpa)+}&~A#M7s zS?{i)3vtff-QDY9gUW$smX@y1p@+zP>)qOVU6x6H>xQ)h8hM!-<+~8v`xrYVA|n}_ ztIlDWnQWZ7iOE?c@q)b;7k7i0A}(%Vuh8=OA;fNT`E7jms3`|VzQ9G7=he*V+lX}z z+HY;;?B^l$`uQpe1+<@5lBMvDNyFb`_M{yuq`OYEYuB#WO-E_MPckvc<~RDQ-^DZTXT86~!-_786^{f8q+&MvCRX70#&IqAXS)>q1tMVAx_b6~|(*FQomBR}* zo8r@k&LBP3Z3OeXSe=Dw@@4MGP1K0$NJs|1sE^T}JN z*x4h0P9|KT8RY;P5jpW)ofw~Uh>*i8gE7VJy!oicU&_il?Vh!(Z6I`y#*OjGr5qx> zjkS(SulK8zbGSbkijRu(6dpR_^>gC0d!&d(J4bj8=_NN(Qc{E`JYfGy7`V+o+Lp0u zq4r8c@N>l*NVINi_Pgn!<8#Y$LNavN7kX1uliO-i^S(33dJ78N`+~d1K?@|kx=@i! zrrl_8YB+3vxtjjp%~;;s`cj9LrEj27chIU^FAiHn#zyE8mhtd^`p#7ALi;svU~XaF z91yS2u0k!wHYp;ho@=x@8`5O z=SUD;AC{XHK5n z(|7`nxa>rnhQy4?-&uO?f}S(K)dU;@%F8eKhZX#8+&dt0+__PSVf#s~foM|N6LF+; zbbDiVKL6I#WLX_{A)OHGm7r zlz*YRA>&tf`5HNyQqrrt+S;n&iWGKs9j^8eC@9Y>>>@m9<)XE!_Tcj(CQ15hZPka5 zIXy1Fd1?34QxTUVPx9Zc?;JlOmHk1>zmk~S>1-I~HKs7v>zj?Y6bZ9Sqc<|< zMh8dZ?PFPMM^bmv(-*cM@>IMUV=wBt5^U}+&gP}p`Jp|zP_VYN@2sj*ObmbF+X?a2 zryDn`H@+m^Ga8`r;%nCuS0++~r8zh_upBIs+hUZFMR3)Q_0`&aI*oGZ<6HND#oBC(agwe`3HX?? zjzXccXBTjS*B3XUj>4jtV%j4Pt;fJ_%Cp;?=#jMdtZ{8cN;emC*+I0YSXfF>nhlNl zZVh_6`zyIck(~ioMn(n&`_Pt5;S#&y9~lV(-?@wIoDUy~o9D#1c6;w=bYc4OH$!0; zcLE@Ga9G2v<9YDZ<3Ter8r(mANxo=h2aSzxO9@ z(BYyAH(;Cd8kq25yDaxez(~f=b8>Y-=t%m_#X=uJya%l4f4eNm;iXKIdVDPj`u%n}Y z##(o)g|i05aib>ZT-N5z*`6Cd;KeS9mwPT?R|&o;9*b%&kz#S}{%XheB<%Cr&$ey* zcAyC%G2cm^R9x^XVWgA0(SrUQ*=B?pK|tz4I~&VKGdlJg?=KYrB1(&R{kj7auuJ8b z{2sT&qM%1iJ6Ub|9%8SCVIV0-4%4}G&Nuw z3OeV5)YMl)f4-vlg=K=Tu<@AtBO=QqtgecQ%}-Xc>qbs*)bakh1_y|;7VUv&521u3 z*FRLykoOUtj(TUq-zrL2ptfN{(6h_OS{m&P65`_va6_b8UCk3{Sby;L?W-_q|9GU7 zq$*O0+dDn))~9XiKHpjvJoUws5Se|UvR0${K?>%X&0ox+I0brJyJL{3@VIj8TjIjw z-~ax!3Bt`&KD=ZkY=K_1s{5dGH#axO3Y1se(d(a2six7;*w|Q44-d>u1H1clT>zi6 z_>7|f>kYP+;*Z8nz=m;>o7>kB0hwA!kb}jEv0+~kV`0RNp0F}1ShrJ-8;HbZeGGc4 zq;3@rEah?}CkxA!m^wdSUkuaFgN9qOuBm?2ob>=zI|6Y$z|8n~R$bPUC!bqqoApWQ zzMzEc3}1)yO?;_@Zrt}G}s)`Jpq_>XvX@-7PAyysH!pQ z!<2;1(={z^3f)e$irlZ2m&{jnjk8GoHk(E(E#U6^XcJS^Cs;A35Iu7GR?jBI(O6#5 z6nc-gmY=`3lx(QhJ;rh4)T<;~$H{rYM845!Xy^=HBzfn3u!xnQs8i7Pbn9mEb7F886=XJRL7M5gwdE;@D5CFcSaQqA`c z+bK!6>JVw?g3#y&UT8Ia{RFR@VH{UYYV3-3ofaMsHoJ#*5IP&g#346IS7G>mHuKe~ zs$W1&POz~J!8aTn+yX?(%B?pFQ$4=Ls&C)k2$qdh{qyK^zA#)^2#XUOuH>W!VQ#D-L?UxMwt>?$XrDAMWW||t* zut4-iLc^Xzyf30Dkt-e+RuX($#c8JSIQO8pc(tvn*V3`IBlU{hvjM3wUjc*xL^^W0 zNN)2eaRJfC5|ZgUei?&-*ZLTlRMEJ%#_ z&$Ru@a&o^02U!cXec!>V5g&*|EVnPSY4hJp@ZAT!z);M2iwlzd=cm1bf~e@|u3fw{ z_tLLQ=$As;lGsiJ)HCL5vgeHpU%B$MeEE7g4((p*(}`hWAF8U@PoGvaXnr8{rd;+% zOVXvDht~%b?8iGF;cUaSuM8>g%UN6fJvLEG@wNAZ^Gu)f@W&IQutfi>uza#}e);3! zk{HB5*4Ea{M~`Y?&0p`AK&tZHsq(5WuC8)kgRs(>LJNHG;6bvGQ+J;O+y;nZk7X(_ z^Hi)EhVa5MUeaNnxU6*xRFwSkU_vtH!Ve6cx|`=}>bpko;K`L_5#PlIYzhbGt=EXN zJ@;v9;N~VLC#SQUu2D127je*4k!ZT0u@4xOIhhGAXY3;gl_G48d)3uJ!@6CB!qfIa z3#>)F{QQWvoy51ze0B7IC0#SWIkvl)U*blPm?{#_-jy3X#Lir-@(BwId)NgK16PHw z(MKl!W8M*_wpw35_+>`atA!Ka1*t_fwfpRXoep@mSmxyOQ<#Q1sZ^nYy?HY%Awl27 zg!3v^4e5V5ApWMlDDi^N!p7IW73JkWhrGP~{d-48)m2r+w?}-r?u%E}z&BT;Sy1oy zTouhWHZtgPP;T0^312D?rWWg`0~xU$qe@gmrQ9m4Ho1PsXkM`8R}||f=U=v2J^I>q z5{q$b5QutZxeMFqM`cwM5cjP?M1GqxFjVji#ySb!YJ*V0_~aOI$W%y zk-Iw%<1-bz@^$V`|4s&8-Uk>grbol>yh=$)si+Y5_olUoJw&D=FzJ=q24xOU2vP=5 z$VuNTL~4}OZrrxIXBilT?=o|7nZh4QwuTKd1Do@%y%scBsrSzbW^Qm|U=c4>Qrv^i zi^7JD`{yC7d6HYB$bhW{sa6n^+#$4>`h!qRHUsre9vB(ykjiF9?EJPyW6>n&E{ zLNB$3hK5^qZZ1;4Jk+_|x6xl*e={kj3!LN^b?GuqMN7^)?*3nOOR-z5PI9@3OfwYL_2m2f)X${=e~w*t2!`& zlTA-g+XA_o=Q#-F%}b73z(ZU;Jw2z5j1?3VU_Ttfn3SB%UJ@D-GS99ho)EDJz`wk_ z9GQ6NPY-I4-@$zhl3w^lHa6yB$ig2Z#->@QwKn1DFkBz!1DXweF6{jh{*7N440and zcf}4Ee!Tn>Lc_?g9oGhOUK-Mp&(%D3#I+=@S3oBxBUAMD$$KaYfEg5<+o72{PP@SU z2)co^RZ5S`s`P6eB#W(YXd4rL2vG6dJK}52R(g{|Cqs3Bkwa2jBNM`09v+@VK(yj? za!8j|q-7gz$x7BJw3i&sOVat{4cz6PeHb#UXZ=%8U%$k8llW46$%wep+it-hThQ1# z|EsZWWt!s@w5ltWrj~Qh;VKlc!!2?|)j%lg=~6%3Rs#bE$;o*Pe{e5`VN4Xb`W5@8 za6e+Jf^v>&w3E|j2ZIJ^AOT~9yn6L*G(|~XzPJld7x{1h>9BdcbDdd|+%iW82M7E5 zfD5KVKu*z3x$ALtwKTmBSI5@3SnvoF2A)I*^yVVqxKCkIF*Yc?Vn8|IQc+F2cYrHe z2352L*9ITjD)oGIcABj^WcY&03R3;(HosyW_U3iZD!{&sn+Fb@-l)g+J@9_`J9`PA znc?9PJUSX3VmEgM>Q8bObdMx;{&inU;?Ic<#G4ux88W4_;A;bPCE4pP(C=i8Vw!$k zRu(Gb6!QUDMMM>Cw9Z%m@gm!NfV2T8fd2$!JNTqfyWOMl%#k(P%&x_naGUlg*rQT6 z#jd`-GlWCAHtoWnT+wtq+mk}n4h+&DYwq^L6Y~>y1b0*`cM1x>u$vj4=REI%eHao! z+yjuLQ0zB!By<3cX=z!6xy*=oC^;sbh$b-Q(~0pfwcqn;Mj3xMxssO|eSZoHpJ31S z{GgtGa?Z=fbXfO1{7?}+DEifesMhT-2XKm^>r&46N3%I-(DuGTvtaRsKjKF;vbs9f zu4!ly1P9k_Z3U95J37F2c`Pg1o6gB7r*#Ud9>gIzo*<9_8c7wRx^b7 z-~Ae-75fWw>zP1yz4||!ur|0wE$Q$V7O#X*p~Y*U^*p1D zC!q4G3OVZ&4VBW)-LICu%l|$q3b(AjOe#~p_@F-gwY89bD)x_Gc}&QlGd7CqQrrkS zYHa?A@iI<|S+(V=AyDUaq13k`xg55L1tqq;jK#Gr2q&$)&0W7P&XlbcpG8Fpk^x=ai+o%R~C{5>ZB8 z(176E>p5J^%$J`9y$fH8O(jR@2O-_>Hkm*|`o=l0m;dg8QirITT^9gg@1f!Qvkl=) zSo@)$Y-Me251t4?Ix0}q)Muq-v-%7gt8XzBE@+|l_zZLp{%2`v7$-CA#|loq)nTp`j~vHD0RUF!jlYg8~tp! zY+f>W?QpEi%&O>w!*Y|ue#^3$H{?lQ?V>u->qe3AeGf~fpWUnAA*{P!F`~A$!pBz| zo%~dnJ3AI3zPpX{Tyzsj180%jh))ep!YX}iLDGc6l3N6d6kJO8%*=A3EG%E{H&MkI zVN7m5%&iHerBLjqi3@FE3#^6B&E_bn{Q9j6=n zk-~>EpQMMfhYt3*y0S7a+VdTcot^P~Rj6bR&cJ2aVKbJGidhwSst<@`diebO1OH7P z|HPVz91Vs9cWnPjv2r&2Ihk(7Z8aZ@(a4%-Q59n*x-!vyjn&S*6bURd{^8zSl)KD} zAFM1|puhk6TIhA}C2JprZ_v0M!zM@;MTBYEjpp>lCnO9t$zBp%6ZqCz3iUU>ti6Ks z=M%&K=b`)trHOz*$O$C{1(|nHH5C*Tpm|14|Nb-ueD-){z&^&(^!)t%tn=+l+{kT@ zgn-EeR)YRc?N%jzJg786#PRdz+7m*n6P}Q+N0@a2gTm^V<#tM(Zicyc7x1?NsO3Uu zZq!lm^&}@Zl?NPn%c9W`=3*n7r)vm`MK72sXFR+ldLI;hY+m+_KE|&J8M~VDo%9kR9&GH(Xqx;Fi z00ls3w7R;Q&Khob{rVxAp9kP7IG&>+J7Co9wA=Mos$c9Ip*F)L^!IKVi{0lef>C@eyr&W z;y));ii^K*t7Pr>p0yo2`PQ5fc=E~0AK&%)`o@#TzdqxFOFB7)JfGb@>9hOaX?L=!$qb%Q zO9R-3`H+yKc2Ex4VwG4&ikyE;RahHGl$9OB$9)54<@6GK;o@@7aIC6#4nlLb*7jA0 z8`LQM-|*2lO32ROEVgysMLy@nO2|x5{APRmGsNH6buXi!fWSDWxKFHG|Lh`8JidGk z6RoOxrYT)zMFnIv@G_KinMVu_4}WPZ4GIcEI!n#jK{RGkeN}kUeflZeeip08)X^Zx z!ylcflyM+P$279hydUo$E`7HSKSPM^hwNEwYzXWM;c`sem`K19F6^u4k~O7cV`GDA ziN}H?_iCc%<2@e-a#5M=ZY0sHdA|* z{T-PrRNjl+q5R`E(J#N8JTT@*_A|#5M<(L1P|o<&6g4<^jxBz5+x1hlI}LJ*l8ExP zMt`lhWk_iW;?qyVR+f?yD3K;6dn&1(vQ&m0)J`LzqSBkV@Dg`c{lU>fE_M5b9>jr( zGd_!mU~?Dk*!1tC&aRf@ z34A_0-;$s~IU+DO0YVT#K=OAHIVzxYP82$bI51{JSWrcjM5e}qn>K=Q(1^#-_RZJ{?WkqCL#?0K@+~gz` zmg``mvkFoC4myX6c&uRQ?VE3QwlLKJZe?I(1g*n@ObNwCRzbm6Zs{K(D69?K)Ztt^ z;Pe~t`tBxc?837@Id4)N{kO;EJF>FgQZa0}>?}tQ@ib={zfKP-H@G+2p5Frb9FR+N zOttc;K{EusTw}t z%r6@%%B!m8#>bVh5gfG-A@iiQ!bkuR?Y88#`(PEpM04|+ACthW`bq+Q8 zmk=L@Gz$uls!ocxd!C+aEo~HGGo?eGY2(`)Y+C>UqcwEytm}o444y*cf(31WD=)M2 zZ&Pg8@NmPGOBdwRoJ(G12|!^8$M)SyR013n%vu!eNrdqEXo9Pi5jXlrV?9Fx5VKxH z%0WAuM7|LufWIV(saS6<(*tpfxE$o!HT8wk#+dB!L(}gq&zp!7*60e9gk_?L+pI41 ztt>C&MST91Trs*_{(4DSO)a5m2&q!oPFC^CsBA@m0XbX8jy-W)esi2PW^d!ouOD2r z1{CG3*(~V*(@Ky-$tQ9r=GQr&1tDG*VNvs1y$~Q8720n75Tvz24&u8igJnfF&i@tRhePh`1KZ=b%@u%!0fI}95J2L+aJ zIm*l%>fmApqloQ`pK`|v*y6MZyM&z%0)7s_sx6Jx9*wBxUM%DmNm8VyrF|6=VlW|k z%Xb8o$JV7QN(CP7>fq@*GIU|ZSEHs<3 zKIfq4#WQ}u@xMD)4C~pRr)`}G;|r0aZ)+(8H4r1ru3Y`imN+}@;7h^xLn`}))dn4; z$}-B4`Q>qRQo&!E25WA8!F@NRI8L2-f~FgBcGIJ6!5yOVqxL3qUeD=t9<3au$Soa! zRws&Q;LxMz0sSwWfObw7{RZ*Z(aus`^Sn!MdA+?=ZCe}bJNe7+IHkoJ)5 z?{zSWlteZTq9*F9zn|0YnX0;p0fDf)ZQ473{Nv8y!ii^>!LjY2c;q&sooSj+!o8;w<=NZ235_EYT3&5ei4@0q{f z+fOM(yPG>Y*4RnE=QqudX}x*Rwz>aQjCv)7Xo+2VIQn~hpyH#9Uf$ldNP1s%jwxh4 zqZH<}1FxE|y#Sev$m5WTQNv1*YZJdb&|mN|ib+Wo-23?v*A{S#$GCmvyc}`MwqjEV z%oFK^WJr`GeA(qjj}BWFW-pZ$cv2i!KHouL)SK$t)Jk-?v10=W>cc($$3}nsnu5)E zfLS87ZaWL>T?P=Lx*$TygYF?mB%HHDz`w)w^zq}*^d@(38>3Z=46mV=`(FU6aXn!j zxEw1)$H}7Ns;WV`xi-4G16Z2$y~x{k^?d`POFy;2Ex+X9dF)eii@yJ z%A?mzs_WW))$hgZ^#Wmc+#}S8AwV3+{NUQFxMB;tiUmx_eP)RC*GT=X9rF zgpv)0ZNa%#GZf+(eU{qJF)ctXkbYzD=p*IG62iz&XqGY0`7GE^4tH!Rao)lgOSESX zAr;r|fKJ8_+{yM54Ce&VM-U+1SjW!>ci*aIJx>mgh`0?9+g$xT3tw-{X6o<}BooJC zx0jr5pyS6Zw11Ux^tr*pf1jJAT-D9b*J4jfroCQetEA81fD>8tDH68rZ&S(L2`_aI ztw3y?gS#r9QFvq=_?>rMSSQV6F+V>)+?E^AG(9`p%kmj2ER{izGwmD1{di zIehRYJK;r0ThgVar43Bk!ep8*0F%P~+W)U~jVmh2xv|uc-eye!PxWPL3kXLBqA0gBvtHp-wPMyzB&Q`s){CzE=Q8 zEPfZ@=g_W8sQ-*@oBI-L$gQA;$rK0mW#=g#K*?OQPR z$NK7#;XkLn!b#RZ8z34Vf`>NIDy28dqJz4!I^ zuMOa$(NS3_R6%w&{!|Sgeq*-(`aHDM(8di}U2ZLfP#iCFf?rW3ig=VDLm!x0Cd8kc znE{uBoE)*su-XNGX$+N$2}Yg+#_8CniU})Fa;RL4CQBLwhaX`g;@$~J9xR;DYzh|yptAcR=Q3x^_a0{l@{|90#lYa0Sw^eFG!BA0Uww=)A9xo1eLg5F zFUS7dKLiw0S_-YA@f>$P?^4A=!A$OG#>>xQ*$Hd-dxYHtv3UV z#o14GBj+*2eP{574Dw-#+ztQL?hRv2$#g>VLu^l9`Gdd z<39zCSkUQi+e0U4z_q3!WT*v@_IODS5ZMwOgl}#i!zL#uvoloG)knL!ykEY204L;* z$=s8tbj+zvL6X3IUe^sNA6G-03mpo%2^xfJA-pnFx3F^--(k%cTUad9WfrM;0yT&- zi9i1-O!$Hww|`S6*zd&e#u87xgHYIzV;_tb)(dMmtYo~@*-z--3IBwZRR4xPcaAcq z9Jp^uH^3Nh&i4u2=(*l^@|OV4)T1wl<%;0A?$~)%=bKT*dvx=(132ne+4G}baq%?R z`5IaO{OE!Sf4D%+aj7hz*~bm~t`fKO94NU#*Fo2<_eDv)BA7$ns>cuC5tYYhWM_s- zDap#3BBDbt)wn}Ym&d2Mvo+r)3z?J9pE-+404b8$i<^~YHz}GjZz0M!*uNasRsk79 zx|rzhUWvtIDj|GO>)y+I4$si!Jo;_4Rfdi#NrW9wpm|~Ogn0i`bMpfFj@se6KW94v zmcHkIp@YmvjwId4ReW~Z+p^v2=(%$@o(a+fHUHE;okjlNT{oSIC6ICqH1UX(FB*GC zc!EtyYD#?qtJ?^omTsxwD@AtQmg;^C+(M?^Pu{GOKY~Mnn21RFTA;yC!IP@#PZ|l) z`Sj7CFykSE=Ba&K;e?NJbWJ>5)!#6ncr&+Pmtw zmDCd&RP&}^FhA1RT!F~A$=TWGZf@d|lFkM!BjyF<>U%_2$*_jv1?#9G{OZnLKuJzs;s#CIHmC5YsBSa`_|isDw32f)%f0bStI4oS zZKl8G6IK%5n7~kSxe^wsZXRmq$5`;Pc7PZ|>n)Sso|l7fRr#@`J>Nh6dmBMyLUY>S zW%K=Ia#ckxEtjShJe#$pjy2RNF8#*is>e>A)HY#j6J_A$u7^$#+CN+~xKQfFjIPCd z%bL*X_MWiTPS-`yAh7Q1`PMvG4ii(Cr2Nh?hRU3-Ija^xy3Pt((U=}6N-Bd1ZRQ0F z9b+pjX>dmbtc;{OJtN~U;LYGwquQ|Kq`INOuS)&iy_CFBbUo>nt2Bi5defneEz!M01vF(zee(V zFm~5%YC5WT)PC~r2GtOuq!qK_*Q+7+1CMR9eU{LSKQ>t&d$aXvKtaFC2%b&rM^KCjOOeh^&v+T^lO{Z zv#atSw|P|wd7ffNgI|i88Vvu<0EE>UjVQ4cKOsqRp=-O_2br;v@R z$L0Qlk`e{JwiDN*_1x%JOV8R`*~Qez&}Q*98}PWm<@8PaUYq=GcJ^&iA^Wd0$~t-n z&+z#{a-YLc^8N!Qrg_P)2j07Gz#NvB=1fC1Y3Ucg`#&p4Uj74a$0*{cJbfCjb$^DG z1e!WZN*%6Te8w}kLvK~<A9q%~e&#NZf_6ks>A{HMJH(7S@!*PJinUGmrkK zKQw03jFTqS-^ggl8$qk%z1IA__qt- z?J>wWEDju1+=VYp&^Ei=c211Y5c;+M)evfN30XpVql-Y#;|gkO1X#MY6g!bd`}_g| za9|Zg)|6qz#48QGsO1Ui$WrIe(bw;`)pZG5= zmbj(wor=!wTyqmZrS6Eh%b5@wMyg%g3P>H91HWFzqb=Ef3!|v)-R!lB|Btn=j;lKF zx;2Lx9c5Gm134xg79dgNw&&&wJl{=MO(KqNT$$Y6#1WlR0<0pan5cJ`eg@zvZQvb& z+0kEF4}WDD|8XLS`yMwcoPqSrOc^RIr2+JZBiN=_LgL?cj#`5~pd)5_bY1ivh3Xj$ z*pE|&nq<}XI0tD%aJjU>6{1WGh8U1c93<|cNRl4k0OsTQ+f9TgIiwmDdHG@(aR4#F zo~xiz^|3=ZWj8GS{r5du1cTC!fT7Q)2JpR(JSGc<5w3ek8&S#p*x7jjLKfq@SU~d# z4vqO=U(dRPy>o7JM0RKw?{g}v;lZQhZ*P6@;$M7ndI#WBC>- z?q2(~%nrm7L?Yv@Gt1*k{%^EQoh>c;Px^C+8;;&_hVQ9Md)5ALn3mu)D%27FC_O-5 zi2zN&(fMKBBnXBE2FzTuECq{~(03XaVDVkOaYJzL-q@wvye{nLkS7*F4MEZD4!XdO zcHS_uY;c?=8}k<840>z;M{ZS=128YkxSB(F1J)eEi@_sVcKf~VF_Gy% zTSZFVz>M$H$B(^lmhwC^RlfZTymEIb=y`Y^lwX~T5BGf~_!fs9+$C6--YPl;fb4m9 zt6->z!-S7m^9-jl*#MkMTvhAPMS=^(zbZYxS17g6GVVEg^yoedxDwo;CBYhO|9mw+ zu_9^xl!_OW8Az~MaRoj7VP3myw{G16-cbAw9!?7uE=1(v;^LypzGu&I-L#`SLzWvX zTZ!Qp4uJ>F$oXI_(xl{M@4I)=0rQ5h3#zYYhTZm{J9QTe5{anD$lYuH9Ec@)pCN)C zC@D3SPk(O?JifRwqV#xh<%pVIbG93b+adEKSB00ZmeA*0{Ozkv(lrI01g z(nTB@;UWq`Z=Z>0dwr^)RB>1?nw6+dz-qsuV-PZv6oV`8CIriF2>8>5$@iNOjlM3~v`TAh{leCOu5K94UvGP`Jv2KfFK?GGPeOiC5x?p^$KR;cgORt; znzAMrZb?S6z^!ITlb>6R7Mvk1Zsz8(sSeq1YGiOj`5pwLTCa0(z>fA-O*9YD#v{rNQw{HfJc0T#8*KVv6joc?uA>W*sfuMm#Yg;_7;52Yq>$CFe2QtAYvnqEw%Diy*fZ=$!r}%L z(GW3}m`FmS@RhT;%s8YwsHCI(L>=>YCP?wU}~K^_S=0HkR2vq4{(-7NH)UC^x> z=Tjv0sZ~`~Z2|U$xx?4MOYPrdMYNnnTq`>AVPVYSU9-^P{=f9(zoVv5@q8n0#S0wn z=XELJXs_X7S9H5`=M^`%*@Ch}`NHnfpzd+&WWw-t1Bhb-DRMf2!`d0Ga1Vz1UZd9-vmTitlf z^L*aDtt>31w~9Y`h8{qf^ntBLF7#1o!$W=SOQfS`{ROP9uXb^EevDq@m&OttZfL*A z|2cNfz3r%|dC-OOD1PO?=MI%|ts+`Kf?1C7qv5vnGax81^kt9^P4$TzGS5OUX=r?;>nTSZY6!r&6--RFwHAANy1MYyT`)-bt3OWZJ49-S=9v^!R?eZV6KdT9B3^qV39eK8$MxSXohaEk z%TCx7q)5@KcN+5E?&G%DSU5FJ+aKsVTnpUyi`aMKjN<<;_U*a#jRNrjW(BInNCFUK zy=k#2J2@*f^BCoRt>lRC15zf|+uk9;-MUxQSDeqQ%K|sRbv2hP6$KwQqwQ-(B!9oB z$M+8f*A&OUD!5uq|5d@|5Oman^m*GI8b9WLkKz#PRJkvkk}LJDZ`Rqi zOCj&}@fT+vLNtLR38a|t^6Sgi+dcv3nJ0B%B^Rn+*A;-@x3PV;B5BXTK6Q{={TG>4 zgfoQ__6Wx%NS~t%kA-Xq-Kcz=U}4Ngd%4(p9Ff&}#_S+wipyX~S)vSfuD_4+KDzmR zM&U$R*=zS|1_p6qfLLL>kH9L^1PkN9v;S8pHIf%R-rgR^X~C#AIc-MIX%V8-g(FRU z+l4gBav>;4XnLJyQRaE?{`z{lMQM&B-=%Y0LGyvls=swmGnp?JWX4U~h9MNo=@gh+ zPQa#%ip)T_QX0h?oTVs8ey1p)8!+J3?cw7fWfT%U>yyA&0za9YdpxczG0<42M=M;S^q9vCtbmN`rvs1yOXs;PdO-&}V!khn#X@ z)DqzuG)*%~NsJCK2`Irr_Xc*t{Toz0T2lMjmjr?IE=kDtLuY4-Ue3z9P}POf*^me& z2I08%sC8l)D^U>k0k>-@NUxzU?eD`?P)v=`%b`q0;P(e4wrRhU{O1@!yriO1iQe4W zYPaM5uar(#k|^RGTo zKnk0GUqEq7lKv+`xf3oYGTIzhB!YDC0fzDB+FcHl5>!<4QAXt4JX=}cfXezA0FC%x zrG3biWDFK^?%df2?gi2^y5ZhlJ7hW%)eLkG5>yBBl`>6lk3TMhI!Rn)H7;)@4;65P ziH1STptIwcfjSeA28CR{a)q~b={Cjo6BQeOsH!hXtpg??yZtZdEG_3%8dP0#+=$L2}66f>PaIbs0|3jWh?Ya*;@C6J^5wmf zm62a-*v*Qd#U3n0vx*(Z?hD%|jv7AJ20rjV)(90oHPk19m16`xW%Xw0KJqFN@aczt zyZsR1RR$U!IZkz%JC1V@gY>Et0lUMiWh(P$hRkUBx`z`gxF_^PsTqfIuiWv9eW<8o z#rsKw?}(Tf!FrT#9d{xc5=;9@BRb>ZGSWT-$@%Ds)`>)T=v*qVW6e zC<+TW#Axd4Z#x&MRo+_s!8U4t_;X86S?Vkjs0l#P8IwM++SkudT~m`QDl`MJ26Fkz z=ECP|*t?rTWqSKglrE5;C$UENJ{BnNUwj$}tfr?DT7I{afki7x`CXP_%5Ee%Av%m*xVM0m~RtmSZ5 zy4yD}fHEb&izDbG=Tp-X6YnCW`E}un9U$7@qciXCpU#u=P6l&AR|iKwKwxHOoIE(p zBH(y;r&$J3VUYQ4AXP`MR6Nijsa=^V{$!#SC9e(-)nC#2>AIXDNo(VU-yC6qb?*_z z23$b2vU;Ct@7;)6P<#rsvV>A18)&wp8-c9SlLW0fBZ$72QOE3Yik;{30%7Hc=Y7WY zbqRzxP6P$p^mxx)N_4?nKc0?IX!h!2t$j&393=mz?-lx{KaF$8?q#4VUJjcyt@uo` zl3My-o;5ehx?rn>lhtoM^A+!WHZ znsT{gw&ES$nd2)wnSx6ZjZrsFu3ohgw0mqi_ z@WTa;)Q%Gj-_1}gbd`kUA@~Jx4s9-HK zCmtfqI^G~weu3L@l}S1N2E8-XijYo~^Ru7$mO5QM!sDVe1NGXuAVVWMTmQ{IFIlux z&imjw>+ZU>D^~1R4`xuhrz2$7cPP3NUby{+!eAVLymRRA;fm;y^}AE+>+A6?veMGQ zTE0r}zmiLS%AC;a)_rfJ!ne}E?7lE_nJEZvv`5TGLe&9HR@3vo59138P-)9EXCBaM zjY;L{ymWvhE)sj~|emn3y;yc_xc~#2n7B9y+-hzh(9wFuM)p4C?F5p9UVrZ)Ezy-Hk#@k49jRm z`2>ZZ=yH=J-$Qxy(bK!iZOWVgRH9cr?#3d$w7_<-R%ZF##@oQkPN-^zC#GkJ>beu5 zK)#_!x>JdZ^AF`Fk;ir9PAEKluYwq_0z((}!L0-r9LE@8`Z*Z)Aop<8e*FWBhUI6N zixtu-eYqUy7yxYxJnQ!QKSe-|oO6cPQGy~TMic_jmK zIT#vlTJ-;q4gPi2-2S?1!k>M~CrzQ^`6W_lvFeufd$;i+-+lo>cdMY~41NB%jtf24 zqg-H9um;Cr@YV65h)&6}7?n@i>hEq7ExhZ`lDq=OAD689O2R&OQA~-?WSQiu&EHZS zB1?L52CAfW<4{vcxZxC%-wI0(wcD$Z6IKI}?#upO6Z8I@p zk7~!A$;ln)$b`G%ztBkDeC09B{^Tn9napPYP)SQ3%gU9Hc(e=e{;)cL8}bf5bUL1M z>%`4vOhQ$#oTJ~lYgf4Pj1NQMqmnQINk3fm5G$&sk|1cVUe z+Ye*x^K;t*U)PDNjX-56EF`35`|+B)`$~_|BzM>kGeKXxfB&VxKy5Hzs#bo}r_64P zif`M3TWjKcQ>HQl50l#uKb&aYY}uTxttq}MUK$=CzBnR&!Io(3JZS$nH-PUbE&?d%K#3M!o`$uXX+CF@J8m z>75ZM(b&8^Jl!*1+0<3cTE3&W4-Yh^BZ6)wo zxIuvtz%&`6ze7_TxYWLVukLI*xVts$AT(%zd1IA+pu;|X12A2ZC}=IArGp~iHBNzW z=5h;5%kwC4s%oftsKSMEmL>djR9AMr@~YWXB@wcl;CHKj&P|T$2Pr)IMzlD9B#lef z>1+YJdQ25kx;DU_N*~|SiZ+8D%Lv85e`D9e-GnikjRhvjFqYUUD%zlDJhhgtEt>fU zdTr`ux+EYC*rpEV8~4w0#=jy5#E89fm|^ezrN`qhGTD;$=fX*^um=^~s7OkVEVe_K zl@5cSJE>q9B=Z#;?M8DfwUmt8iU_C!1EU+y<`Px~^#OY&g&($-^`BSv1Jtp&_73%r zn3W;*xjWYU`AS>V6RS1JC|p9{&y-b+e`{H;*qJcPTHZB3= z!Npv&=pTX3yhO3toHjMyrl(@!vd4f*z-6`Mdp#lxzIguIgBFQ4*d}+H&%X47$Yn$N zZzavy-&H#!P1uyJh2GAN;p7X~rg9aJnyN_VhQS;CQP;wYsUY{lz2$CC46G;qLxdVq z;HNTOG=2A-HW8unos~3u>NwF&IVmyR8!b#`JnutO+06w zEGQIb+qP z29+eUkpQqB|DLCP9#gmkk}{>xil46QH`bFVj1-lvr`=&ady zq`po07Wv zM%n|nSN`iH9OY2l(>qm6|gj{@aixQ%*Ttl#KoO>YKsV z%;WuiY$0|HHT&eb@3w+p;3%KyzHQb2@iS*J6dQq`Joa`fw4)myu)EC2O*7$$-Ic*er%VOrr{tknjtJdS)8JVd79(Tv7kh4V$e&4@vsxa43byis{R#=A>Ur!r*B5>>sF)eG@7q;VNp0+T^zyI?{63W%HYKqs3(6i4qX_K% z*UNx=>~okEOYAW5j+>o4!~l z{`JZMAA2~6VaobLo3;li!4$H&iR0B?YzdFJI2$OUq* z{I&JpzGIhRN&iyWsR=1IT>N&6e?M;kT6`u_lcAn)feMa$iO>YnV1NU7fsYWLXJEoz(7%^G#}E~zVJX@5rPv*N!W`$uk0>K~Ue z40Ra|Y@HB7ZC9ky>(I)Aw#l)ylx~3{y9&LMO4GDxdmdsbcrw!KOOGEp;-=SKM>{O$+n&C`p?vb+G5St=>;x^VQ1mLGv?K-5T)& z&Rb(*RyjSQ|r9t9^4TU7$(lz?=`7nCK5|Ys;V9 zXG+4KNAuTsuTT*3@H&_K%VBl^YilqkOfg}o*F#R1`0P#8?P0QAUxtT8&zXc-tlFeD z_Zxyk9VV-tk4KRw%&6MbnfGutI0lxb*sX%@t2f&Al*T@%ITL;@kV9qp(}wLTrld-9 zA0C5SdB3xrwrlgRzd|$IJ3Q>ob8G4EZgbY^7Z1;PbE!8hYU3}qeN^0`t8w^9Ozu5i zt7dg3AZjgs8!Mmsn`#`+b~OGzq8YOzI&pt*0=eyJ3*Ko}X^7vnoqJ30Nb{R(>5CVa z(@#5B0`bWGbCcxU-^VDJNVF7C8)wxb2_{ls+^Q-9f9RG+v-}~uupl$ibc8*Bumyv{ zn>lOpV_P0i<%ZGmHsZbL+;+Zcr;ex^&0(fuFv9l79QwN$h&T0A z$K~P+X}fekW{mtMKIzf6bmPr}xoe{O<+&VmnTQ{fPXW~{oLCbzSqHL*8(84@xo^}` zyd}paN@rPMy5zvzF^#imn&{!~s;m+3MM}LmQ$NGOh_sZ&wanQya?>{UIqTNpSd??J zU58VJh;wDcu>wBsEkhn{L%rsXwL-=v;=UWt>)d&pxn$4npfI!am}`1x4*Xqe;v z+4s4eQCE;{s$R~Y#IV?zk`NG|1+(JVyyeMg!IJOWvwpf#k7e%Hw-!x*B28NzHYHIz zM*CUTd#@Px6(QfZ=)2^*vqd;TZT^>yjgEUVr+KUY`1zQ*7N{D>JkfSzDKWT3_XYzj z*4oiwMEWiceJv$iTswOzep$7PeE*nmZgbbE3tMS_{gQ*@$FH(Yb?M5=7AE@F)-&-v zHg@^4cd&hAeB8y+FMfnPy~+Gk-Povqr(pZ?S3%<6#^Kei+2eWSA(`_HUH_0p9)tS5 z-P7c^p|{6e*KOB*uPypM*{ms?t5LgGEr0g}Iq2D!%!o#nh~)W{HQ#>Hyj`=m$;TT* zF~2LC)n=ij@#oETEBiD)jU=t&52(?hkKr9jy5rC@knVp@U3k%#?Cw1%*&rWudfCAeAYE4 z^#`U1$2V4s9KP*jQu^`QV8iJW_RPavZ|`4id2F$CLw3Kb@)&g5d| zHjbW(r$Fekf@{mIhC$X^aekZU^;^b2$Bmc=8k=Tl74e&Ic74D!fIjCZ;olJWNzc$Q z!iDKJ>K%|HgvZh9#E~`7LN#Rs{p1vdd+-z^TR+hr*c>hKfsT^Ik{4D!Woqs}uTQUU zon+5<-BR74cJ4UBoAi$th2`*?FM6O_my7j}rPe%s4BA7tKx)YS> z$Rw}Yi}R<4mw5tB2-i#=LII!Jfk6W414RQDUqq!f0%j1)L)n2U3}pCJRE3h0l7!91 zS*L+Et`L$7P8KyE*ivo0F({mC(Yn(@TE7K;P=JW2UT`BiUV9eL1y5vZUY=Aw z8f$3D-rJBh!g_0%qbMYbp>3r%3q34aPuIjt2zvTUv5U+di+IXn_lCpcgn9T{(`l2) z)d@Z1vli!yOCF2)#7cLruivaOI~68nk1ZMl(5zHIR4@B4iwU^7IaQ+M(l zVW6iE70rGm=F&U?_i$K6eu6&S0NhMy$hNe3cz96HpmBla8W^`RO-a3GYeQc*wl-da zuAspwxy`(Soe<(dN%`{Z=gn<#v9Zvf^;d|%5%;Jl+XhhwjmXMw*~qi!&b^1_imkt= z=T^Sd@$O_x#Slp^_(9#fdpEQzB23h^I_Ri~oigqR-4z`mhOHI=6;=%MPQ?SnH-j&Mv?#gxl7n4-%Q1`}Ag9KmGVVRy_wa#EnpW!h+!Peo4>Qw{*nAU93F`b`tf<}<)Df9G4BQh@a5zF# z>qbf*YiO(#aYe6!s^qt~6CRn7-q*daKX3CuL~42DJDv`HlUGji?SfzEaOHsOEb|Vc zc6T2VG^3EEKu80FcpQ3pUK}`b1(Kv7z`=2Qeffs-pzuRZ5+QZ3}_^H0m_}E|z>;$`NA;wPtp-!z!gjq|j&dsSiIlGwtdSvPPVN z?9roL38roBEH3KfFHm_mSW%E)BOb)Y5!T_&yWCNWaX${?b^NCz8TG*LN63SQ*A*g5 z2Tlk>C>lck_S%Lr&OcyUrdnC@W240s6&d6(3ubWKvknk zpE&X19&h?tSrkt^J8&-_Ja8aG`cMXs`MceMkuQ88NOG1yF%wR2_O`ZF#v}&L;~S5` z?Mhv=`jOaD3%@bq8hhE=4m&iEg}H|J%1=tF4vLA3t6SA(83x!Lu2+K=&}>x~V^(X> z(QXyTr)Y_nXk40^lOtianlctd5pnO&-8s2!HOHJ?eBW`h<4q@}L8T_En&h~#^|njS zK`~R3mz;We*oy=rbcs?+xHptT_J4HbZR>5$L}^XlgX+5+x-*>aa%HS2yFz~_KR+J@ zHD^b!QRu62^T2v{vKcljg9n9U(3eYQeT`7$9^wRp)MUV8^elvLqfCc-oiY{+_C3fr z2em$%hxP38kFe>e;A$GnTJZBq-^9Ywmj6af(R0Y+_~q<&=|pUn^8bP_^&TUbB-2EG~i0H ze$N;}rrY)P+0yZBuJAU16>U#eODg3Js?%DIlY_3Bd!q!`nRl-9iWG`XoHTX(G<2Rn z#{2xn55*6@VJ0UsXS2!Xtt>qa@pcbOL{8VF9LZnL;BmtlnV{czD&+CQcARO$@*r*a zBiw-jWP#es;nB~FbU(B1GJf5B{q{O%FC_}A^xO&GWoUh>Ax6oV^t|Ud^SAlduXyUe zo=(ZW;GV!(j!vzJB-R=s?L6e-B){sgW2|wG^FmWmQU7OV(@*RIdDiiXJW=g8(BWtp zbb2!<$sZUrH%Mg=kV-fmxwrPy!gW3qIlfJZk!cNO@sl4I5G+Ie5jyaupxuz zGRR1&deS{l==|J=zCy##xHo0LF^P6Vz3rC|hnsZVr&$Bvs7=(0KUni<&cHzcGB$FP zOLCmmV5qCf@j7L@X=UN5vd6EHs}_qau-o@@l9XMYMy~eF*g(7^(OmnqhV+u{eQ#Ba zNtcA?PD@4>Ps+&q2G1e+eEjQ9Zsx^IHR2m-=R|x0rWF@1OlEE(mW63W{tmn_fK9Pp zJytL0#yrMEcs<}P%ka)6lr z?Qga{BVXud`8r zH_HyakS$-p5BgC)e$0AqXuoqgt?SRB=N*Ke@obNW zcCdKwHTCw_ywwlN6NBS@+(se!emfE=H9Pthb=LCauNX`9-14bb+>hpYzh@+Ka`S$s z!p0HqOfRBCw_=#9L#BzTFCUL~a~qAyhq)^wo+7q>ysHTcRjRgFZ}iLkuqjCeVFcyT z{=q>q?BIIplD04tj)hRu!x1Kz7hQ+J@CE_td7R4~UthKgrD(19aF*P-aU%>G3e`^~ zP=@3lqHMQw=Xvy7!EoSWfgrU86fT3CFyagbP5NAg$?9>WLr>Kb2(6z+KT6&SGI-`S z2v#nT@%0d}Lr-`-y%Jq2GJ^LEf(Zb^BJRM>uCDixmqn+INpgF11-&Rm;Ad-RcXKfw z(A_UTz+DL4>ZQHdl@Tkjv#f43{-o{X*s|*J(TA697c?G@=kbeor1!Hq<;XC3tpFzP zXf>#x>)G4izpBkEk7xnHbQvj|?M}^P>jbNPf}(r6(wd)r`SpBT*JQzS8nnM&7I|RX z5q>?Nk=7+ywuDOi?zC(^0-5Wn7O)C3(xmQku85{twyqf-ex9Csj^1G8I%^^YOGG>Z zgFpCz2$(07i>P%49B2@6{wW(ut}-JvH8$2Ho{A`JrN4>*hn}YAYsO;@pQz|Mq!?vs zWc$%EWS%;u5NgJ!q793FN5vCmju;6IIqU&g7YpNh&(1z_$`^7^@Eu^L2?_-FU1Ki) zYDM>Cr6)?p;BF%5_VPGS=+%!td;_{QApoa$S=)OA@mI!tQCR4G`Eq7*)iW#lxa7n* z7t52-^tYqw8m4*gx%REDXE5tK*c_bD@)P+@0HO`hg1Q*rb<*%7|AF|#P){#qq|v3O ziCyof6PE22+J&DU8;Hqp(9wBxyFBQK^sSeD{C5ler_c1a$~Q&JY|4rxBQ<{pm1qkS z@S?{qkrhxJ!Vwv+xH%`GI)#qx0wHDsfpBbOgi|g4NF?rj*GbLh3y6YRQr;Mh8(A-j zcuG#OY;gt^7%4#Wg=5F=V$utSilssNfR78FlG*`ZA&a$yjcA=-I+>1P2rZqQE72U` zFFzQi>RVWwb_+7Y(ltRJXe#bMkGE(rj|HS!5a?b<5t-)GJ$NbZ2O?M*HFC~KVm)ob9D^uW+ifQe;mp}o0Q2az(VrGC~FMPnPZ+MtC zx23B~GfIv3RL9pu?lSrp3!PyQh$g!~AqIw5;F@x!h_hx!1%w=?eoR9h3kS6ee2}HN zqRsLef%pay6MI*agG!2{VR(I;sjQMAcHOLFC?scT=?8 za9Y9MTq|;61enPC_wUi7JCuuqan7niK}QhhIA7NJC)rDn#0^=XOWWOX;|8P0VBpfn zghRSvF-$Cl+A)aWXHE-noE<-KTRK3&R3j-IH&oop7Ws0>0{cWKqDr$?>3(gN2zkuO z3)B~Wd&x}Afx-Y`^@j(pL5t3%`BJHqTlA$hSb+4J{f6bj^J$76rJK^&#I&ZV@AyZq zsC^}kyj$?WB?eUZh*=7bUdb|0?6(RSc?ARmWLD z(bL6j07+p$g`&OH{-sS1VHN~E3IN7Vk2bQ1mO_ z{(%FGUGwDtY!Ini@VrX(HRAmI&!NG-FG2>*w5GiL903M;R4c|dh%9M51Sbfb8Y{(( ziXUC`v1_``pRpL-2p@p#jVW$S*b}MInXT%XY^}$ze`s;-rlcNv(3$;^5Z-5i)Mz6! zK?^OY5*33V8Y(G~k;h{mRlU#3GK6Oj+*8A)s;UWs8){o3F za+>pfr-$To^YcOF4jxf?f1=RL`+J_KFCv;z4AXNDFRzf(tiQvZO(l%c8a92SQ|Y(` z{LHuW+DqCEp+SSwbUv~DMSX9??Rk-h+p%R?Yjd*`DPoH3+?Zsn98unUkupHz{WDI* z_UfGo{Q-BL?qn~^j6Kt@n(eZLwssWq8?Llr^^hF5eeSd*`?3j1{yvhsSR7YyGY5m4 z6@p`+8i35AxZk|}DFcw0pJ_0@X2ayrmyeUT*y5S<-J}CoY)Ci0WRbQe6x;L4Z<9G+ zze#WEGA)&KH?YScEO2)s#m42)#b7e$AM{*mu=@(b_05Z3n^+LIV2-MM*z{Ad6Fg5h zj@(%u(cckm^H;dmq)mvFeNH93naKJY8b+hz#YJNACrd+%ZZlRlyog-GT(nImz$X77 zBQfmf=Sz(L-uyFSv}8M9tvHvkz4iIA&+VC`n^Cz~mNB@d&Bd|P+ez|c+lcGp^*E9_ zi*;#mV7g#U?U+(nZEG|)4U(AOda^bPUP+Ve22K}29_V-ukeqEK>8*s`Q`#pyaB#$ED#csRF0lXE^2BMObe=> zynciKmY?wcG*^FKk1*$|%aoQ6NdR{@mvtLyjl)=IKt{KL5+=-C~~` zr$}h6N8nXqqUWSX8a*5x9EXB(wp5t=c-UGS+SrC=T%lN;>wO*!( z?iukN>QZMErVqU9ARQo<#&gu{)Vl|#{rB=V@pFv`Ii%V4)>#cYjEy$F)w)UV$8e%w zp+NTGp-3oi(3!Wk=3E^56n1uZ4^gHCwmjXwJ6_h0PbOU?ZIs7x)FVAT@QPqfQbVp6 zhpf*R*E*ZJ7dTP95}MZV^tB~7+-!1^5wzi|jk6Iua-^%VPGoGM?U6abK=VWLg@sR^kOx1`#n^; z!nW6n4{B=8W4ikDo#=yvcg%eA{awS8uU_RMi?MAF-$&jQ7UjEEP?n>4IjQ<+M1@D= z^Whe6^$Zu#cO!V z3)u#Wqenkx5z%stE=_Kn)4|1yg}LG!-ZEy{#M`A?*N8WX<>vNh@c&^MFtlRi_V?=f zED|I!pINl4sbMHOw$8r4F5aiumCjPMVe)j>%j)`itswDqee0_SZ#dd1qHX)agj7Aa zsy;|van$kdLhY%(X&)YS5zRu!m$pyVIA8fxSx0{7^+~sXftgmjW^&lON7`2H1AG?u zlln#O^pG`PeA?1ZL5|EAcb+bCDS*}o&7NK1XkgQ z@~wvW53jsU-@IK95B}rR7HXPOfKjljVXM=wsn2p7sQ1*_#G9W>RXiDNcJ-H{mOFE# zpYP%jw~n_;FYvoDIW=75oOAN+m{UXovOcA#bsJr+zPuaTCZ&t)4aZ#rm_oCmz*jVx z?gUdJ`OoDJt=KMuar@MtPo<8W;#3SB2&N5!Js3n84(ro32pXkDxhsSJ*gJq*=R~&!>Y#Mv^0^L+GRZ20)MS2KF+9^@6FMc zY}~(q#%6c2w#8NF)p;&dbW>Zc5|ThMU`Vno=aiG9wYam6_lfJ8;v%plCa%v3b9B?m zXSW)E&cbx4raYT!I_o;m!!CN`b-=?=jIhg*AVRapi&9Mi_%Cv?y_PJH&JW(FHx z@V6UJ8?@Hxm-Jl2^Qu#!i$$=ld3bv7aA^_4DXo+}g;AbcGE7;2JE<%=JlD;?)Bqv36nZ{xa7LQ0;<(OTlpI zd$@*1YbG;mqpLR)GC|mjH4cBAQcizy=Hulm&wzlZ1#k;SHRaRYx*K!0_QZ2aaK`na z9p<=%2I2K&^pj*|1`_Qc+>(0m9h_)yBeB z)cKY1FlE)^8#irwh@wm^`9As#+dk>5e4s;hM$NP0?oAn-nwB2X(LGQtu(u(sB3cX} zwuveW`X@#yG5`9ITeCns1)f82R8cS_9nwxA50ToIV0N^bENFl%&cuhkRf;;(e zPw$yNYh?p7Ccv2Tv40RAbFmUdvQ#5O#fLGaBG8aqq6b8~+5TiiZHjWjgoaZg=#CfOE6-Kh+^D+VxO5A;tG{jD_5e#&FpXzcMf+etbsOb$@%Y9RuBIPt#e-h z0#S|?QxCd{0)q3(U_ z&bSWGPBUj0m;Ntbjz~%>@E?ytp0JXlGQBC{-VWVNCmCSV-f!Vv%@Sa{dDpIfEQ2`_ zTIlxLtY(+-{In0-%`KWQx<>Ahs_-{2+}gdpkl{$5)k*4Biag<>AON-j3Ue^_gT^I; zO1+r_d1(7z2hPN`+<23VRd z1TXh){g(In1xT_Z zmBLFv#Ar#Twf_afp}QV?40_UN3@6U|#yu$9t@eOr?vg+L2-isJgZQ)}THD;v#=;t@ z888G+&6n}0jWqrqYg-Gb&Q=&o;iUW{ozO$o!0HA2i-v|qPyl)CbGg$i8MFaGYil0jYkx9?dztsQUy_)Cd+A&(651pzHpOneu*lq8Q zQYyRwPz+9Z!DQiv;RiQm1~jY}H2)j#Hx{*#Ha?rB;2hvtK^!7x2u3G40kH za8d%eoc^@%9DuN1jva=Di~?nj?BUhjAl6t|S#>}}eZMF-7eTu>wU&T}i-}~GpABx* ztjiy#@^@nwp*3*hElXBz6ui%&nM&h1^zqqKNOWQ0XAAUtQWqL9WeuFz632Z!$Ro&m zG*h7A4K(9uVHUJ8G4v=ubIm|b;W2(5;2GLhE@=f=`t^ zrx;Mwf+loWZO%gf9aWQJ-E|L87pk-HSl`6lQhSECG3!)LIXqH(S5=z3!zU+$%DSxs z{XyQNQa5?)&_ByR?h9_Ij#mXsTnP{sT-(;~aihJKF=?Lo@=w|85bV?xHI;}El#9l; zJ*epFYc*_F?cwVG0o6xRGC80F-akJ#lIp-B8p{05q7?#ue_ z6!TlrR#LNnk_y1u#S6W_+z#rFKTem4$m#MC-qvCS1i(F+v1nU&B^rzI@|K$n%XXQ? zu6z2fQ(_55c$FV$P#FhHMS9CygSUA04|Tt)f6%|F}a>R)>CIfj^;}T@z(SdXbBufAe>6b`; zAF%rbsSpEJFl3S85>NT14j!}V@*$5Mg6d34z^!_|;8`Q#kEyRSUCL_2 z#g}Ud5nBNCkrkp@Xk^IRFDbUw`y8a)-2t!;12FQKfr*JAFc64#bX{Dv$h|IZj>BZ# z;ML{?6TuJl+jFNpv~XUvObuu90(nAE(3jvZnePB-ThKsGLO=~9Gp^tIy8NuW%L2nrPm@L`OG(MgcCs zhzp&3Q9k?ZZ49v@*RbQ0E+Dc1FVU6jvHGB6hWWLj(Br~$LR0{d-rPO3%N;_=`*w`J`W;flK)N-rb(bzvZKudqNKc6;(}yNt1ARx69T|D-jqif!r7d|MHr zl2=`wg!wV8EI3{KC?+|%R&=WER>20Zr6V7+no&^@={;2adDo+&fZ8O4ofZ;(7oR@m zhEZw5GmF#5kAH%lROA&F-sB*F9xSa??(ccyDXG)rBlQ`Zbg~9+MfbE;c)&(NeI@