opmsec 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -0
- package/.husky/pre-commit +1 -0
- package/README.md +71 -275
- package/bun.lock +5 -5
- package/docs/architecture/agents.mdx +11 -59
- package/docs/architecture/benchmarks.mdx +20 -46
- package/docs/architecture/overview.mdx +31 -38
- package/docs/architecture/scanner.mdx +11 -37
- package/docs/cli/audit.mdx +9 -12
- package/docs/cli/check.mdx +12 -26
- package/docs/cli/fix.mdx +10 -30
- package/docs/cli/info.mdx +12 -19
- package/docs/cli/install.mdx +27 -39
- package/docs/cli/push.mdx +40 -57
- package/docs/cli/register-agent.mdx +21 -53
- package/docs/cli/view.mdx +12 -29
- package/docs/concepts/ens-records.mdx +44 -0
- package/docs/concepts/multi-agent-consensus.mdx +18 -36
- package/docs/concepts/on-chain-registry.mdx +22 -49
- package/docs/concepts/security-model.mdx +20 -52
- package/docs/concepts/zk-agent-verification.mdx +26 -64
- package/docs/contract/events.mdx +13 -74
- package/docs/contract/functions.mdx +40 -126
- package/docs/contract/overview.mdx +17 -36
- package/docs/introduction.mdx +22 -25
- package/docs/mint.json +3 -2
- package/docs/quickstart.mdx +34 -70
- package/docs/system-design.png +0 -0
- package/package.json +7 -6
- package/packages/cli/src/commands/author-view.tsx +87 -2
- package/packages/cli/src/commands/check.tsx +18 -5
- package/packages/cli/src/commands/fix.tsx +25 -12
- package/packages/cli/src/commands/info.tsx +92 -4
- package/packages/cli/src/commands/install.tsx +327 -23
- package/packages/cli/src/commands/push.tsx +112 -0
- package/packages/cli/src/commands/register-agent.tsx +72 -31
- package/packages/cli/src/index.tsx +7 -5
- package/packages/cli/src/services/ens-records.ts +525 -0
- package/packages/cli/src/services/version.ts +156 -5
- package/packages/core/src/benchmarks.ts +116 -0
- package/packages/core/src/constants.ts +18 -6
- package/packages/core/src/model-rankings.ts +40 -15
- package/packages/core/src/types.ts +10 -0
- package/packages/core/src/utils.ts +136 -1
- package/packages/scanner/src/index.ts +2 -1
- package/packages/scanner/src/queue/memory-queue.ts +7 -2
- package/packages/scanner/src/services/benchmark-runner.ts +86 -1
- package/packages/scanner/src/services/fileverse.ts +61 -12
- package/packages/scanner/src/services/openrouter.ts +18 -7
- package/packages/web/.next/BUILD_ID +1 -0
- package/packages/web/.next/app-path-routes-manifest.json +4 -0
- package/packages/web/.next/diagnostics/build-diagnostics.json +6 -0
- package/packages/web/.next/diagnostics/framework.json +1 -0
- package/packages/web/.next/export-marker.json +6 -0
- package/packages/web/.next/images-manifest.json +58 -0
- package/packages/web/.next/next-minimal-server.js.nft.json +1 -0
- package/packages/web/.next/next-server.js.nft.json +1 -0
- package/packages/web/.next/prerender-manifest.json +54 -4
- package/packages/web/.next/required-server-files.json +320 -0
- package/packages/web/.next/routes-manifest.json +53 -1
- package/packages/web/.next/server/app/_not-found/page.js +2 -0
- package/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/packages/web/.next/server/app/_not-found.html +1 -0
- package/packages/web/.next/server/app/_not-found.meta +8 -0
- package/packages/web/.next/server/app/_not-found.rsc +18 -0
- package/packages/web/.next/server/app/index.html +6 -0
- package/packages/web/.next/server/app/index.meta +7 -0
- package/packages/web/.next/server/app/index.rsc +22 -0
- package/packages/web/.next/server/app/page.js +24 -24
- package/packages/web/.next/server/app/page.js.nft.json +1 -0
- package/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/packages/web/.next/server/chunks/611.js +6 -0
- package/packages/web/.next/server/chunks/778.js +30 -0
- package/packages/web/.next/server/functions-config-manifest.json +4 -0
- package/packages/web/.next/server/interception-route-rewrite-manifest.js +1 -1
- package/packages/web/.next/server/next-font-manifest.js +1 -1
- package/packages/web/.next/server/next-font-manifest.json +1 -1
- package/packages/web/.next/server/pages/404.html +1 -0
- package/packages/web/.next/server/pages/500.html +1 -0
- package/packages/web/.next/server/pages/_app.js +1 -0
- package/packages/web/.next/server/pages/_app.js.nft.json +1 -0
- package/packages/web/.next/server/pages/_document.js +1 -0
- package/packages/web/.next/server/pages/_document.js.nft.json +1 -0
- package/packages/web/.next/server/pages/_error.js +19 -0
- package/packages/web/.next/server/pages/_error.js.nft.json +1 -0
- package/packages/web/.next/server/webpack-runtime.js +2 -2
- package/packages/web/.next/static/0esGzFBCzREfVwijEGDfL/_buildManifest.js +1 -0
- package/packages/web/.next/static/0esGzFBCzREfVwijEGDfL/_ssgManifest.js +1 -0
- package/packages/web/.next/static/chunks/174-5b5efcb3b8efcc01.js +1 -0
- package/packages/web/.next/static/chunks/255-0dc49b7a6e8e5c05.js +1 -0
- package/packages/web/.next/static/chunks/4bd1b696-382748cc942d8a14.js +1 -0
- package/packages/web/.next/static/chunks/app/_not-found/page-0da542be7eb33a64.js +1 -0
- package/packages/web/.next/static/chunks/app/layout-de8e841104500505.js +1 -0
- package/packages/web/.next/static/chunks/app/layout.js +37 -7
- package/packages/web/.next/static/chunks/app/page-7e086379698b9fb0.js +1 -0
- package/packages/web/.next/static/chunks/app/page.js +297 -1
- package/packages/web/.next/static/chunks/framework-ac73abd125e371fe.js +1 -0
- package/packages/web/.next/static/chunks/main-4e8d71b5ef7ee7e3.js +1 -0
- package/packages/web/.next/static/chunks/main-app-dd261207182e5a23.js +1 -0
- package/packages/web/.next/static/chunks/pages/_app-7d307437aca18ad4.js +1 -0
- package/packages/web/.next/static/chunks/pages/_error-cb2a52f75f2162e2.js +1 -0
- package/packages/web/.next/static/chunks/webpack-0dcd67569eb46132.js +1 -0
- package/packages/web/.next/static/chunks/webpack.js +2 -2
- package/packages/web/.next/static/css/102562cf2d0ae9b0.css +3 -0
- package/packages/web/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
- package/packages/web/.next/static/media/747892c23ea88013-s.woff2 +0 -0
- package/packages/web/.next/static/media/8d697b304b401681-s.woff2 +0 -0
- package/packages/web/.next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
- package/packages/web/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
- package/packages/web/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
- package/packages/web/.next/static/webpack/16f18baa938a434c.webpack.hot-update.json +1 -0
- package/packages/web/.next/static/webpack/5fe9fe8578f9c3d2.webpack.hot-update.json +1 -0
- package/packages/web/.next/static/webpack/73c7d02260cc80e4.webpack.hot-update.json +1 -0
- package/packages/web/.next/static/webpack/a2d85d19aa028de1.webpack.hot-update.json +1 -0
- package/packages/web/.next/static/webpack/app/{layout.73e341375c8d429e.hot-update.js → layout.16f18baa938a434c.hot-update.js} +1 -1
- package/packages/web/.next/static/webpack/app/{layout.6fee6306e0f98869.hot-update.js → layout.5fe9fe8578f9c3d2.hot-update.js} +1 -1
- package/packages/web/.next/static/webpack/app/layout.653e365406c0d9ac.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/layout.6800169a899e3a8b.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/layout.73c7d02260cc80e4.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/layout.a2d85d19aa028de1.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/page.653e365406c0d9ac.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/page.6800169a899e3a8b.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/page.73c7d02260cc80e4.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/app/page.a2d85d19aa028de1.hot-update.js +22 -0
- package/packages/web/.next/static/webpack/{webpack.6fee6306e0f98869.hot-update.js → webpack.16f18baa938a434c.hot-update.js} +2 -2
- package/packages/web/.next/static/webpack/{webpack.73e341375c8d429e.hot-update.js → webpack.5fe9fe8578f9c3d2.hot-update.js} +2 -2
- package/packages/web/.next/static/webpack/webpack.653e365406c0d9ac.hot-update.js +12 -0
- package/packages/web/.next/static/webpack/webpack.6800169a899e3a8b.hot-update.js +12 -0
- package/packages/web/.next/static/webpack/webpack.73c7d02260cc80e4.hot-update.js +12 -0
- package/packages/web/.next/static/webpack/webpack.a2d85d19aa028de1.hot-update.js +12 -0
- package/packages/web/.next/trace +2 -5
- package/packages/web/app/globals.css +197 -51
- package/packages/web/app/layout.tsx +6 -3
- package/packages/web/app/page.tsx +791 -309
- package/packages/web/bun.lock +66 -105
- package/packages/web/next.config.ts +8 -1
- package/packages/web/package.json +5 -2
- package/packages/web/postcss.config.mjs +2 -2
- package/packages/web/public/apple-icon.png +1 -0
- package/packages/web/public/dependency-bottleneck.png +0 -0
- package/packages/web/public/icon-dark-32x32.png +1 -0
- package/packages/web/public/icon-light-32x32.png +1 -0
- package/packages/web/public/icon.svg +1 -0
- package/packages/web/public/nextjs-cve-announcement.png +0 -0
- package/packages/web/public/phantomraven-npm-attack.png +0 -0
- package/packages/web/public/placeholder-logo.png +1 -0
- package/packages/web/public/placeholder-logo.svg +1 -0
- package/packages/web/public/placeholder-user.jpg +1 -0
- package/packages/web/public/placeholder.jpg +1 -0
- package/packages/web/public/placeholder.svg +1 -0
- package/packages/web/public/react-cve-meme.png +0 -0
- package/packages/web/public/wallet-drain-exploit.png +0 -0
- package/packages/web/styles/globals.css +125 -0
- package/packages/web/.next/server/vendor-chunks/@swc.js +0 -55
- package/packages/web/.next/server/vendor-chunks/next.js +0 -3010
- package/packages/web/.next/static/chunks/app-pages-internals.js +0 -182
- package/packages/web/.next/static/chunks/main-app.js +0 -1882
- package/packages/web/.next/static/css/app/layout.css +0 -1237
- package/packages/web/.next/static/webpack/633457081244afec._.hot-update.json +0 -1
- package/packages/web/.next/static/webpack/app/page.6fee6306e0f98869.hot-update.js +0 -22
- package/packages/web/.next/static/webpack/app/page.73e341375c8d429e.hot-update.js +0 -22
- package/packages/web/tailwind.config.ts +0 -48
- /package/packages/web/.next/static/chunks/{polyfills.js → polyfills-42372ed130431b0a.js} +0 -0
- /package/packages/web/.next/static/webpack/{6fee6306e0f98869.webpack.hot-update.json → 653e365406c0d9ac.webpack.hot-update.json} +0 -0
- /package/packages/web/.next/static/webpack/{73e341375c8d429e.webpack.hot-update.json → 6800169a899e3a8b.webpack.hot-update.json} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"c":[],"r":[],"m":[]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
4
|
-
* This devtool is neither made for production nor for readable output files.
|
|
5
|
-
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
6
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
7
|
-
* or disable the default devtool with "devtool: false".
|
|
8
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
9
|
-
*/
|
|
10
|
-
self["webpackHotUpdate_N_E"]("app/page",{
|
|
11
|
-
|
|
12
|
-
/***/ "(app-pages-browser)/./app/page.tsx":
|
|
13
|
-
/*!**********************!*\
|
|
14
|
-
!*** ./app/page.tsx ***!
|
|
15
|
-
\**********************/
|
|
16
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
17
|
-
|
|
18
|
-
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\nconst DOCS_URL = 'https://localhost:3001';\nconst GITHUB_URL = 'https://github.com/dhananjaypai08/opm';\nconst NPM_URL = 'https://www.npmjs.com/package/opmsec';\nconst CONTRACT = '0x16684391fc9bf48246B08Afe16d1a57BFa181d48';\nconst BASESCAN = \"https://sepolia.basescan.org/address/\".concat(CONTRACT);\nfunction Logo(param) {\n let { size = 20 } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"rect\", {\n width: \"32\",\n height: \"32\",\n rx: \"6\",\n fill: \"#ededed\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M8 10L12 22L16 13L20 22L24 10\",\n stroke: \"#0a0a0a\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 15,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: \"16\",\n cy: \"24\",\n r: \"1.5\",\n fill: \"#16a34a\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n_c = Logo;\nfunction Nav() {\n _s();\n const [scrolled, setScrolled] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"Nav.useEffect\": ()=>{\n const handler = {\n \"Nav.useEffect.handler\": ()=>setScrolled(window.scrollY > 20)\n }[\"Nav.useEffect.handler\"];\n window.addEventListener('scroll', handler, {\n passive: true\n });\n return ({\n \"Nav.useEffect\": ()=>window.removeEventListener('scroll', handler)\n })[\"Nav.useEffect\"];\n }\n }[\"Nav.useEffect\"], []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"fixed top-0 left-0 right-0 z-40 transition-all duration-300 \".concat(scrolled ? 'bg-bg/80 backdrop-blur-xl border-b border-border' : ''),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-6xl mx-auto px-6 h-16 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/\",\n className: \"flex items-center gap-2.5 hover:opacity-80 transition-opacity\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Logo, {\n size: 24\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-semibold tracking-tight\",\n children: \"opm\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[10px] font-mono text-muted bg-surface px-1.5 py-0.5 rounded border border-border\",\n children: \"v0.1.3\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 35,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#features\",\n className: \"text-sm text-muted hover:text-accent transition-colors\",\n children: \"Features\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 38,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#architecture\",\n className: \"text-sm text-muted hover:text-accent transition-colors\",\n children: \"Architecture\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"#cli\",\n className: \"text-sm text-muted hover:text-accent transition-colors\",\n children: \"CLI\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 40,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: DOCS_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"text-sm text-muted hover:text-accent transition-colors\",\n children: \"Docs\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 41,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: GITHUB_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"text-sm text-muted hover:text-accent transition-colors\",\n children: \"GitHub\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: BASESCAN,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"text-sm font-mono text-muted hover:text-accent transition-colors flex items-center gap-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 44,\n columnNumber: 13\n }, this),\n \"Base Sepolia\"\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 43,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 37,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 31,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 30,\n columnNumber: 5\n }, this);\n}\n_s(Nav, \"tQtW9FyKD+Ut/6k+f0BCbABprL4=\");\n_c1 = Nav;\nfunction Hero() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"relative min-h-screen flex items-center justify-center grid-bg overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] rounded-full bg-gradient-radial from-white/[0.02] to-transparent animate-glow-pulse\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 57,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 56,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative z-10 max-w-4xl mx-auto px-6 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-fade-in\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"inline-flex items-center gap-2 text-xs font-mono text-muted mb-8 px-3 py-1.5 rounded-full border border-border bg-surface/50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-1.5 h-1.5 rounded-full bg-green-500\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 63,\n columnNumber: 13\n }, this),\n \"Secured by multi-agent consensus on Base L2\"\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 62,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 61,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-6xl md:text-8xl font-bold tracking-tighter leading-[0.9] mb-6 animate-slide-up\",\n style: {\n animationDelay: '0.1s',\n animationFillMode: 'backwards'\n },\n children: [\n \"On-chain\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 69,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-transparent bg-clip-text bg-gradient-to-r from-white via-white/90 to-white/40\",\n children: \"Package Security\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 70,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 68,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg md:text-xl text-muted max-w-2xl mx-auto mb-12 leading-relaxed animate-slide-up\",\n style: {\n animationDelay: '0.3s',\n animationFillMode: 'backwards'\n },\n children: \"Cryptographic attestation, multi-model AI auditing, and immutable risk scoring for every npm package. All verified on-chain.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 75,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col sm:flex-row items-center justify-center gap-4 animate-slide-up\",\n style: {\n animationDelay: '0.5s',\n animationFillMode: 'backwards'\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute -inset-0.5 bg-gradient-to-r from-white/20 to-white/5 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity blur-sm\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 81,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"code\", {\n className: \"relative flex items-center gap-3 bg-surface border border-border rounded-lg px-5 py-3 font-mono text-sm cursor-pointer hover:border-border-light transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-muted\",\n children: \"$\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 83,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"npm i -g opmsec\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 84,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-muted/50\",\n children: \"|\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 85,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-muted text-xs\",\n children: [\n \"then: opm install \",\n '<pkg>'\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 86,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 82,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 80,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: DOCS_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"px-5 py-3 text-sm font-medium text-bg bg-accent rounded-lg hover:bg-white transition-colors\",\n children: \"Read the docs\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 79,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 60,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-bg to-transparent\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 95,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 55,\n columnNumber: 5\n }, this);\n}\n_c2 = Hero;\nfunction Features() {\n const features = [\n {\n title: 'Multi-Agent Consensus',\n description: 'Three independent LLMs (Claude, Gemini, DeepSeek) analyze every package in parallel. Risk scores are intelligence-weighted using live Artificial Analysis benchmarks.',\n detail: 'No single model failure point. Weighted aggregate scoring with model intelligence and coding indices.',\n icon: '⬡'\n },\n {\n title: 'Cryptographic Attestation',\n description: 'Every package is checksummed, signed with the author\\'s wallet, and registered on Base L2. Signatures are verified at install time.',\n detail: 'SHA-256 checksum, ECDSA signature, on-chain registration. Tamper-evident by design.',\n icon: '◈'\n },\n {\n title: 'ZK-Verified Agent Registration',\n description: 'Permissionless agent onboarding with zero-knowledge proof of benchmark accuracy. Agents must achieve 100% on labeled security datasets to participate.',\n detail: 'Hash-commitment scheme with circom circuit reference. Accuracy proven without revealing test data.',\n icon: '◎'\n },\n {\n title: 'On-chain Risk Registry',\n description: 'Immutable risk scores, author profiles, and audit reports stored on Base Sepolia. Every security assessment is a verifiable public record.',\n detail: 'OPMRegistry.sol: authorizedAgents, packages, versionData, AgentScores. Fully queryable.',\n icon: '▣'\n },\n {\n title: 'CVE + Typosquat Detection',\n description: 'OSV database integration for known vulnerabilities. Levenshtein-distance typosquat detection against the top 10,000 npm packages.',\n detail: 'Real-time CVE lookups, automated fix suggestions, dependency confusion detection.',\n icon: '◬'\n },\n {\n title: 'Drop-in npm Replacement',\n description: 'Full CLI compatibility: install, audit, check, push, fix. Every npm command works transparently with security verification layered on top.',\n detail: 'opm install = npm install + on-chain verification + signature check + CVE scan.',\n icon: '◯'\n }\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"features\",\n className: \"py-32 px-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-6xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-muted mb-4 tracking-widest uppercase\",\n children: \"Security Primitives\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 144,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl md:text-5xl font-bold tracking-tight\",\n children: [\n \"Defense in depth,\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 146,\n columnNumber: 30\n }, this),\n \"by default.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 145,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 143,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-px bg-border rounded-2xl overflow-hidden\",\n children: features.map((f, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-surface p-8 hover:bg-surface-hover transition-colors group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity\",\n children: f.icon\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 153,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-3\",\n children: f.title\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 154,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-muted leading-relaxed mb-4\",\n children: f.description\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 155,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-muted/60 leading-relaxed\",\n children: f.detail\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 152,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 150,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 142,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 141,\n columnNumber: 5\n }, this);\n}\n_c3 = Features;\nfunction Architecture() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"architecture\",\n className: \"py-32 px-6 border-t border-border\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-6xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-muted mb-4 tracking-widest uppercase\",\n children: \"System Design\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 170,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl md:text-5xl font-bold tracking-tight\",\n children: \"Verification pipeline\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 171,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-5 gap-4\",\n children: [\n {\n step: '01',\n title: 'Pack & Sign',\n desc: 'SHA-256 checksum, ECDSA signature via author wallet'\n },\n {\n step: '02',\n title: 'Multi-Agent Scan',\n desc: '3 LLMs analyze source in parallel, each submits risk score'\n },\n {\n step: '03',\n title: 'Weighted Consensus',\n desc: 'Intelligence-weighted aggregate via Artificial Analysis indices'\n },\n {\n step: '04',\n title: 'On-chain Registry',\n desc: 'Package, scores, report URI registered on Base Sepolia'\n },\n {\n step: '05',\n title: 'Install Verify',\n desc: 'Signature + on-chain score + CVE check at install time'\n }\n ].map((s, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gradient-to-b from-white/5 to-transparent border border-border rounded-xl p-6 h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-mono text-muted block mb-3\",\n children: s.step\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 187,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-sm font-semibold mb-2\",\n children: s.title\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 188,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted leading-relaxed\",\n children: s.desc\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 189,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 186,\n columnNumber: 17\n }, this),\n i < 4 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-border\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 192,\n columnNumber: 19\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 185,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 177,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 176,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-20 grid grid-cols-1 md:grid-cols-3 gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-border rounded-xl p-6 bg-surface/50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-green-500/80 mb-3\",\n children: \"CHAIN\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 201,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-semibold mb-1\",\n children: \"Base Sepolia (L2)\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 202,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted\",\n children: \"Low-cost, high-throughput settlement for agent score submissions and package registrations.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 203,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 200,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-border rounded-xl p-6 bg-surface/50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-blue-400/80 mb-3\",\n children: \"STORAGE\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 206,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-semibold mb-1\",\n children: \"Fileverse (IPFS)\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 207,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted\",\n children: \"Full audit reports uploaded to decentralized storage. URI stored on-chain for permanent reference.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 208,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 205,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-border rounded-xl p-6 bg-surface/50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-purple-400/80 mb-3\",\n children: \"IDENTITY\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 211,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-semibold mb-1\",\n children: \"ENS Resolution\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 212,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted\",\n children: \"Author addresses resolved to ENS names. On-chain author profiles with reputation scoring.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 213,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 199,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 168,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 167,\n columnNumber: 5\n }, this);\n}\n_c4 = Architecture;\nfunction CLISection() {\n const commands = [\n {\n cmd: 'opm push',\n desc: 'Sign, scan with 3 AI agents, publish, register on-chain'\n },\n {\n cmd: 'opm install <pkg>',\n desc: 'Install with signature + on-chain + CVE verification'\n },\n {\n cmd: 'opm check',\n desc: 'Scan all deps: typosquats, CVEs, AI analysis, Fileverse report'\n },\n {\n cmd: 'opm fix',\n desc: 'Auto-fix typosquats and vulnerable versions'\n },\n {\n cmd: 'opm audit',\n desc: 'On-chain + CVE audit for entire dependency tree'\n },\n {\n cmd: 'opm info <pkg>',\n desc: 'On-chain metadata, agent scores, safest version'\n },\n {\n cmd: 'opm register-agent',\n desc: 'Register a new security agent (ZK-verified)'\n },\n {\n cmd: 'opm view <name.eth>',\n desc: 'ENS author profile, reputation, published packages'\n }\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n id: \"cli\",\n className: \"py-32 px-6 border-t border-border\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-6xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 gap-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-muted mb-4 tracking-widest uppercase\",\n children: \"CLI Reference\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 238,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl font-bold tracking-tight mb-6\",\n children: [\n \"Every command,\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 240,\n columnNumber: 29\n }, this),\n \"security-first.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 239,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-muted leading-relaxed mb-8\",\n children: \"Drop-in replacement for npm. Every operation gains cryptographic verification, AI-powered auditing, and on-chain attestation transparently.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 242,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: DOCS_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"inline-flex items-center gap-2 text-sm font-medium px-4 py-2 border border-border rounded-lg hover:bg-surface transition-colors\",\n children: \"Full CLI documentation\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 245,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 237,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"terminal-glow rounded-xl border border-border bg-surface overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 px-4 py-3 border-b border-border\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full bg-[#ff5f57]\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 252,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full bg-[#febc2e]\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 253,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full bg-[#28c840]\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 254,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 text-xs text-muted font-mono\",\n children: \"terminal\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 255,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 251,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-5 font-mono text-sm space-y-3\",\n children: commands.map((c, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-muted shrink-0\",\n children: \"$\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 260,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-green-400\",\n children: c.cmd\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 262,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-muted/50 text-xs block mt-0.5\",\n children: c.desc\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 263,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 261,\n columnNumber: 19\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 259,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 257,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 250,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 236,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 235,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 234,\n columnNumber: 5\n }, this);\n}\n_c5 = CLISection;\nfunction ContractSection() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"py-32 px-6 border-t border-border\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-4xl mx-auto text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-mono text-muted mb-4 tracking-widest uppercase\",\n children: \"Smart Contract\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 279,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-4xl font-bold tracking-tight mb-6\",\n children: \"Fully on-chain. Fully verifiable.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 280,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-muted max-w-2xl mx-auto mb-12\",\n children: \"OPMRegistry.sol deployed on Base Sepolia. Every package registration, agent score submission, and author profile is an immutable on-chain record.\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 md:grid-cols-4 gap-px bg-border rounded-xl overflow-hidden mb-12\",\n children: [\n {\n label: 'Packages',\n desc: 'Registered'\n },\n {\n label: 'Agent Scores',\n desc: 'Submitted'\n },\n {\n label: 'Authors',\n desc: 'Verified'\n },\n {\n label: 'Reports',\n desc: 'On IPFS'\n }\n ].map((s, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-surface p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted mb-1\",\n children: s.desc\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 295,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-semibold\",\n children: s.label\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 296,\n columnNumber: 15\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 294,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 287,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"inline-flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: BASESCAN,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"flex items-center gap-2 text-sm font-mono text-muted hover:text-accent transition-colors px-4 py-2 border border-border rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-2 h-2 rounded-full bg-green-500\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 308,\n columnNumber: 13\n }, this),\n \"View on BaseScan\"\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 302,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"\".concat(GITHUB_URL, \"/blob/main/packages/contracts/contracts/OPMRegistry.sol\"),\n target: \"_blank\",\n rel: \"noopener\",\n className: \"flex items-center gap-2 text-sm text-muted hover:text-accent transition-colors px-4 py-2 border border-border rounded-lg\",\n children: \"Source Code\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 311,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 301,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n_c6 = ContractSection;\nfunction Footer() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"border-t border-border py-12 px-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-6xl mx-auto flex flex-col md:flex-row items-center justify-between gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/\",\n className: \"flex items-center gap-2.5 hover:opacity-80 transition-opacity\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Logo, {\n size: 18\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 330,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold tracking-tight\",\n children: \"opm\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 331,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-muted\",\n children: \"On-chain Package Manager\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 332,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 329,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-6 text-sm text-muted\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: DOCS_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"hover:text-accent transition-colors\",\n children: \"Docs\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 335,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: GITHUB_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"hover:text-accent transition-colors\",\n children: \"GitHub\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 336,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: NPM_URL,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"hover:text-accent transition-colors\",\n children: \"npm\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 337,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: BASESCAN,\n target: \"_blank\",\n rel: \"noopener\",\n className: \"hover:text-accent transition-colors\",\n children: \"Contract\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 338,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 334,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted/50\",\n children: \"MIT License\"\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 340,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 328,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 5\n }, this);\n}\n_c7 = Footer;\nfunction Home() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Nav, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 349,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Hero, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 350,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Features, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 351,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Architecture, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 352,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CLISection, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 353,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ContractSection, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 354,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Footer, {}, void 0, false, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 355,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhananjaypai/Coding/Personal/opm/packages/web/app/page.tsx\",\n lineNumber: 348,\n columnNumber: 5\n }, this);\n}\n_c8 = Home;\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8;\n$RefreshReg$(_c, \"Logo\");\n$RefreshReg$(_c1, \"Nav\");\n$RefreshReg$(_c2, \"Hero\");\n$RefreshReg$(_c3, \"Features\");\n$RefreshReg$(_c4, \"Architecture\");\n$RefreshReg$(_c5, \"CLISection\");\n$RefreshReg$(_c6, \"ContractSection\");\n$RefreshReg$(_c7, \"Footer\");\n$RefreshReg$(_c8, \"Home\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OzswQkFDQyw4REFBQ25EOzs7OzswQkFDRCw4REFBQ2lCOzs7OzswQkFDRCw4REFBQ1M7Ozs7OzBCQUNELDhEQUFDWTs7Ozs7MEJBQ0QsOERBQUNJOzs7OzswQkFDRCw4REFBQ0k7Ozs7OzBCQUNELDhEQUFDRTs7Ozs7Ozs7Ozs7QUFHUDtNQVp3QkUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kaGFuYW5qYXlwYWkvQ29kaW5nL1BlcnNvbmFsL29wbS9wYWNrYWdlcy93ZWIvYXBwL3BhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgRE9DU19VUkwgPSAnaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMSc7XG5jb25zdCBHSVRIVUJfVVJMID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9kaGFuYW5qYXlwYWkwOC9vcG0nO1xuY29uc3QgTlBNX1VSTCA9ICdodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vcG1zZWMnO1xuY29uc3QgQ09OVFJBQ1QgPSAnMHgxNjY4NDM5MWZjOWJmNDgyNDZCMDhBZmUxNmQxYTU3QkZhMTgxZDQ4JztcbmNvbnN0IEJBU0VTQ0FOID0gYGh0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvYWRkcmVzcy8ke0NPTlRSQUNUfWA7XG5cbmZ1bmN0aW9uIExvZ28oeyBzaXplID0gMjAgfTogeyBzaXplPzogbnVtYmVyIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD17c2l6ZX0gaGVpZ2h0PXtzaXplfT5cbiAgICAgIDxyZWN0IHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiNlwiIGZpbGw9XCIjZWRlZGVkXCIgLz5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxMEwxMiAyMkwxNiAxM0wyMCAyMkwyNCAxMFwiIHN0cm9rZT1cIiMwYTBhMGFcIiBzdHJva2VXaWR0aD1cIjJcIiBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgIDxjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMjRcIiByPVwiMS41XCIgZmlsbD1cIiMxNmEzNGFcIiAvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5mdW5jdGlvbiBOYXYoKSB7XG4gIGNvbnN0IFtzY3JvbGxlZCwgc2V0U2Nyb2xsZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBzZXRTY3JvbGxlZCh3aW5kb3cuc2Nyb2xsWSA+IDIwKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlcik7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxuYXYgY2xhc3NOYW1lPXtgZml4ZWQgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgei00MCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgJHtzY3JvbGxlZCA/ICdiZy1iZy84MCBiYWNrZHJvcC1ibHVyLXhsIGJvcmRlci1iIGJvcmRlci1ib3JkZXInIDogJyd9YH0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTZ4bCBteC1hdXRvIHB4LTYgaC0xNiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGEgaHJlZj1cIi9cIiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMi41IGhvdmVyOm9wYWNpdHktODAgdHJhbnNpdGlvbi1vcGFjaXR5XCI+XG4gICAgICAgICAgPExvZ28gc2l6ZT17MjR9IC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+b3BtPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIGZvbnQtbW9ubyB0ZXh0LW11dGVkIGJnLXN1cmZhY2UgcHgtMS41IHB5LTAuNSByb3VuZGVkIGJvcmRlciBib3JkZXItYm9yZGVyXCI+djAuMS4zPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICA8YSBocmVmPVwiI2ZlYXR1cmVzXCIgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzXCI+RmVhdHVyZXM8L2E+XG4gICAgICAgICAgPGEgaHJlZj1cIiNhcmNoaXRlY3R1cmVcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQgaG92ZXI6dGV4dC1hY2NlbnQgdHJhbnNpdGlvbi1jb2xvcnNcIj5BcmNoaXRlY3R1cmU8L2E+XG4gICAgICAgICAgPGEgaHJlZj1cIiNjbGlcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQgaG92ZXI6dGV4dC1hY2NlbnQgdHJhbnNpdGlvbi1jb2xvcnNcIj5DTEk8L2E+XG4gICAgICAgICAgPGEgaHJlZj17RE9DU19VUkx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCIgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzXCI+RG9jczwvYT5cbiAgICAgICAgICA8YSBocmVmPXtHSVRIVUJfVVJMfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1tdXRlZCBob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9yc1wiPkdpdEh1YjwvYT5cbiAgICAgICAgICA8YSBocmVmPXtCQVNFU0NBTn0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbW9ubyB0ZXh0LW11dGVkIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ncmVlbi01MDAgYW5pbWF0ZS1wdWxzZVwiIC8+XG4gICAgICAgICAgICBCYXNlIFNlcG9saWFcbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uYXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEhlcm8oKSB7XG4gIHJldHVybiAoXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicmVsYXRpdmUgbWluLWgtc2NyZWVuIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdyaWQtYmcgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMS8yIGxlZnQtMS8yIC10cmFuc2xhdGUteC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB3LVs4MDBweF0gaC1bODAwcHhdIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC1yYWRpYWwgZnJvbS13aGl0ZS9bMC4wMl0gdG8tdHJhbnNwYXJlbnQgYW5pbWF0ZS1nbG93LXB1bHNlXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotMTAgbWF4LXctNHhsIG14LWF1dG8gcHgtNiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtZmFkZS1pblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQteHMgZm9udC1tb25vIHRleHQtbXV0ZWQgbWItOCBweC0zIHB5LTEuNSByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctc3VyZmFjZS81MFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidy0xLjUgaC0xLjUgcm91bmRlZC1mdWxsIGJnLWdyZWVuLTUwMFwiIC8+XG4gICAgICAgICAgICBTZWN1cmVkIGJ5IG11bHRpLWFnZW50IGNvbnNlbnN1cyBvbiBCYXNlIEwyXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTZ4bCBtZDp0ZXh0LTh4bCBmb250LWJvbGQgdHJhY2tpbmctdGlnaHRlciBsZWFkaW5nLVswLjldIG1iLTYgYW5pbWF0ZS1zbGlkZS11cFwiIHN0eWxlPXt7IGFuaW1hdGlvbkRlbGF5OiAnMC4xcycsIGFuaW1hdGlvbkZpbGxNb2RlOiAnYmFja3dhcmRzJyB9fT5cbiAgICAgICAgICBPbi1jaGFpbjxiciAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtdHJhbnNwYXJlbnQgYmctY2xpcC10ZXh0IGJnLWdyYWRpZW50LXRvLXIgZnJvbS13aGl0ZSB2aWEtd2hpdGUvOTAgdG8td2hpdGUvNDBcIj5cbiAgICAgICAgICAgIFBhY2thZ2UgU2VjdXJpdHlcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDE+XG5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBtZDp0ZXh0LXhsIHRleHQtbXV0ZWQgbWF4LXctMnhsIG14LWF1dG8gbWItMTIgbGVhZGluZy1yZWxheGVkIGFuaW1hdGUtc2xpZGUtdXBcIiBzdHlsZT17eyBhbmltYXRpb25EZWxheTogJzAuM3MnLCBhbmltYXRpb25GaWxsTW9kZTogJ2JhY2t3YXJkcycgfX0+XG4gICAgICAgICAgQ3J5cHRvZ3JhcGhpYyBhdHRlc3RhdGlvbiwgbXVsdGktbW9kZWwgQUkgYXVkaXRpbmcsIGFuZCBpbW11dGFibGUgcmlzayBzY29yaW5nIGZvciBldmVyeSBucG0gcGFja2FnZS4gQWxsIHZlcmlmaWVkIG9uLWNoYWluLlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtNCBhbmltYXRlLXNsaWRlLXVwXCIgc3R5bGU9e3sgYW5pbWF0aW9uRGVsYXk6ICcwLjVzJywgYW5pbWF0aW9uRmlsbE1vZGU6ICdiYWNrd2FyZHMnIH19PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JvdXAgcmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgLWluc2V0LTAuNSBiZy1ncmFkaWVudC10by1yIGZyb20td2hpdGUvMjAgdG8td2hpdGUvNSByb3VuZGVkLWxnIG9wYWNpdHktMCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHkgYmx1ci1zbVwiIC8+XG4gICAgICAgICAgICA8Y29kZSBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBiZy1zdXJmYWNlIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQtbGcgcHgtNSBweS0zIGZvbnQtbW9ubyB0ZXh0LXNtIGN1cnNvci1wb2ludGVyIGhvdmVyOmJvcmRlci1ib3JkZXItbGlnaHQgdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1tdXRlZFwiPiQ8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuPm5wbSBpIC1nIG9wbXNlYzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1tdXRlZC81MFwiPnw8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQgdGV4dC14c1wiPnRoZW46IG9wbSBpbnN0YWxsIHsnPHBrZz4nfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvY29kZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YSBocmVmPXtET0NTX1VSTH0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIiBjbGFzc05hbWU9XCJweC01IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWJnIGJnLWFjY2VudCByb3VuZGVkLWxnIGhvdmVyOmJnLXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICBSZWFkIHRoZSBkb2NzXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCByaWdodC0wIGgtMzIgYmctZ3JhZGllbnQtdG8tdCBmcm9tLWJnIHRvLXRyYW5zcGFyZW50XCIgLz5cbiAgICA8L3NlY3Rpb24+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEZlYXR1cmVzKCkge1xuICBjb25zdCBmZWF0dXJlcyA9IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ011bHRpLUFnZW50IENvbnNlbnN1cycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1RocmVlIGluZGVwZW5kZW50IExMTXMgKENsYXVkZSwgR2VtaW5pLCBEZWVwU2VlaykgYW5hbHl6ZSBldmVyeSBwYWNrYWdlIGluIHBhcmFsbGVsLiBSaXNrIHNjb3JlcyBhcmUgaW50ZWxsaWdlbmNlLXdlaWdodGVkIHVzaW5nIGxpdmUgQXJ0aWZpY2lhbCBBbmFseXNpcyBiZW5jaG1hcmtzLicsXG4gICAgICBkZXRhaWw6ICdObyBzaW5nbGUgbW9kZWwgZmFpbHVyZSBwb2ludC4gV2VpZ2h0ZWQgYWdncmVnYXRlIHNjb3Jpbmcgd2l0aCBtb2RlbCBpbnRlbGxpZ2VuY2UgYW5kIGNvZGluZyBpbmRpY2VzLicsXG4gICAgICBpY29uOiAn4qyhJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQ3J5cHRvZ3JhcGhpYyBBdHRlc3RhdGlvbicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0V2ZXJ5IHBhY2thZ2UgaXMgY2hlY2tzdW1tZWQsIHNpZ25lZCB3aXRoIHRoZSBhdXRob3JcXCdzIHdhbGxldCwgYW5kIHJlZ2lzdGVyZWQgb24gQmFzZSBMMi4gU2lnbmF0dXJlcyBhcmUgdmVyaWZpZWQgYXQgaW5zdGFsbCB0aW1lLicsXG4gICAgICBkZXRhaWw6ICdTSEEtMjU2IGNoZWNrc3VtLCBFQ0RTQSBzaWduYXR1cmUsIG9uLWNoYWluIHJlZ2lzdHJhdGlvbi4gVGFtcGVyLWV2aWRlbnQgYnkgZGVzaWduLicsXG4gICAgICBpY29uOiAn4peIJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnWkstVmVyaWZpZWQgQWdlbnQgUmVnaXN0cmF0aW9uJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnUGVybWlzc2lvbmxlc3MgYWdlbnQgb25ib2FyZGluZyB3aXRoIHplcm8ta25vd2xlZGdlIHByb29mIG9mIGJlbmNobWFyayBhY2N1cmFjeS4gQWdlbnRzIG11c3QgYWNoaWV2ZSAxMDAlIG9uIGxhYmVsZWQgc2VjdXJpdHkgZGF0YXNldHMgdG8gcGFydGljaXBhdGUuJyxcbiAgICAgIGRldGFpbDogJ0hhc2gtY29tbWl0bWVudCBzY2hlbWUgd2l0aCBjaXJjb20gY2lyY3VpdCByZWZlcmVuY2UuIEFjY3VyYWN5IHByb3ZlbiB3aXRob3V0IHJldmVhbGluZyB0ZXN0IGRhdGEuJyxcbiAgICAgIGljb246ICfil44nLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdPbi1jaGFpbiBSaXNrIFJlZ2lzdHJ5JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnSW1tdXRhYmxlIHJpc2sgc2NvcmVzLCBhdXRob3IgcHJvZmlsZXMsIGFuZCBhdWRpdCByZXBvcnRzIHN0b3JlZCBvbiBCYXNlIFNlcG9saWEuIEV2ZXJ5IHNlY3VyaXR5IGFzc2Vzc21lbnQgaXMgYSB2ZXJpZmlhYmxlIHB1YmxpYyByZWNvcmQuJyxcbiAgICAgIGRldGFpbDogJ09QTVJlZ2lzdHJ5LnNvbDogYXV0aG9yaXplZEFnZW50cywgcGFja2FnZXMsIHZlcnNpb25EYXRhLCBBZ2VudFNjb3Jlcy4gRnVsbHkgcXVlcnlhYmxlLicsXG4gICAgICBpY29uOiAn4pajJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQ1ZFICsgVHlwb3NxdWF0IERldGVjdGlvbicsXG4gICAgICBkZXNjcmlwdGlvbjogJ09TViBkYXRhYmFzZSBpbnRlZ3JhdGlvbiBmb3Iga25vd24gdnVsbmVyYWJpbGl0aWVzLiBMZXZlbnNodGVpbi1kaXN0YW5jZSB0eXBvc3F1YXQgZGV0ZWN0aW9uIGFnYWluc3QgdGhlIHRvcCAxMCwwMDAgbnBtIHBhY2thZ2VzLicsXG4gICAgICBkZXRhaWw6ICdSZWFsLXRpbWUgQ1ZFIGxvb2t1cHMsIGF1dG9tYXRlZCBmaXggc3VnZ2VzdGlvbnMsIGRlcGVuZGVuY3kgY29uZnVzaW9uIGRldGVjdGlvbi4nLFxuICAgICAgaWNvbjogJ+KXrCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0Ryb3AtaW4gbnBtIFJlcGxhY2VtZW50JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRnVsbCBDTEkgY29tcGF0aWJpbGl0eTogaW5zdGFsbCwgYXVkaXQsIGNoZWNrLCBwdXNoLCBmaXguIEV2ZXJ5IG5wbSBjb21tYW5kIHdvcmtzIHRyYW5zcGFyZW50bHkgd2l0aCBzZWN1cml0eSB2ZXJpZmljYXRpb24gbGF5ZXJlZCBvbiB0b3AuJyxcbiAgICAgIGRldGFpbDogJ29wbSBpbnN0YWxsID0gbnBtIGluc3RhbGwgKyBvbi1jaGFpbiB2ZXJpZmljYXRpb24gKyBzaWduYXR1cmUgY2hlY2sgKyBDVkUgc2Nhbi4nLFxuICAgICAgaWNvbjogJ+KXrycsXG4gICAgfSxcbiAgXTtcblxuICByZXR1cm4gKFxuICAgIDxzZWN0aW9uIGlkPVwiZmVhdHVyZXNcIiBjbGFzc05hbWU9XCJweS0zMiBweC02XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTZ4bCBteC1hdXRvXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItMjBcIj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LW11dGVkIG1iLTQgdHJhY2tpbmctd2lkZXN0IHVwcGVyY2FzZVwiPlNlY3VyaXR5IFByaW1pdGl2ZXM8L3A+XG4gICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgRGVmZW5zZSBpbiBkZXB0aCw8YnIgLz5ieSBkZWZhdWx0LlxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMyBnYXAtcHggYmctYm9yZGVyIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgIHtmZWF0dXJlcy5tYXAoKGYsIGkpID0+IChcbiAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9XCJiZy1zdXJmYWNlIHAtOCBob3ZlcjpiZy1zdXJmYWNlLWhvdmVyIHRyYW5zaXRpb24tY29sb3JzIGdyb3VwXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtMnhsIG1iLTQgYmxvY2sgb3BhY2l0eS00MCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIj57Zi5pY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi0zXCI+e2YudGl0bGV9PC9oMz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkIGxlYWRpbmctcmVsYXhlZCBtYi00XCI+e2YuZGVzY3JpcHRpb259PC9wPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LW11dGVkLzYwIGxlYWRpbmctcmVsYXhlZFwiPntmLmRldGFpbH08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEFyY2hpdGVjdHVyZSgpIHtcbiAgcmV0dXJuIChcbiAgICA8c2VjdGlvbiBpZD1cImFyY2hpdGVjdHVyZVwiIGNsYXNzTmFtZT1cInB5LTMyIHB4LTYgYm9yZGVyLXQgYm9yZGVyLWJvcmRlclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy02eGwgbXgtYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIG1iLTIwXCI+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1vbm8gdGV4dC1tdXRlZCBtYi00IHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2VcIj5TeXN0ZW0gRGVzaWduPC9wPlxuICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgdHJhY2tpbmctdGlnaHRcIj5cbiAgICAgICAgICAgIFZlcmlmaWNhdGlvbiBwaXBlbGluZVxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTUgZ2FwLTRcIj5cbiAgICAgICAgICAgIHtbXG4gICAgICAgICAgICAgIHsgc3RlcDogJzAxJywgdGl0bGU6ICdQYWNrICYgU2lnbicsIGRlc2M6ICdTSEEtMjU2IGNoZWNrc3VtLCBFQ0RTQSBzaWduYXR1cmUgdmlhIGF1dGhvciB3YWxsZXQnIH0sXG4gICAgICAgICAgICAgIHsgc3RlcDogJzAyJywgdGl0bGU6ICdNdWx0aS1BZ2VudCBTY2FuJywgZGVzYzogJzMgTExNcyBhbmFseXplIHNvdXJjZSBpbiBwYXJhbGxlbCwgZWFjaCBzdWJtaXRzIHJpc2sgc2NvcmUnIH0sXG4gICAgICAgICAgICAgIHsgc3RlcDogJzAzJywgdGl0bGU6ICdXZWlnaHRlZCBDb25zZW5zdXMnLCBkZXNjOiAnSW50ZWxsaWdlbmNlLXdlaWdodGVkIGFnZ3JlZ2F0ZSB2aWEgQXJ0aWZpY2lhbCBBbmFseXNpcyBpbmRpY2VzJyB9LFxuICAgICAgICAgICAgICB7IHN0ZXA6ICcwNCcsIHRpdGxlOiAnT24tY2hhaW4gUmVnaXN0cnknLCBkZXNjOiAnUGFja2FnZSwgc2NvcmVzLCByZXBvcnQgVVJJIHJlZ2lzdGVyZWQgb24gQmFzZSBTZXBvbGlhJyB9LFxuICAgICAgICAgICAgICB7IHN0ZXA6ICcwNScsIHRpdGxlOiAnSW5zdGFsbCBWZXJpZnknLCBkZXNjOiAnU2lnbmF0dXJlICsgb24tY2hhaW4gc2NvcmUgKyBDVkUgY2hlY2sgYXQgaW5zdGFsbCB0aW1lJyB9LFxuICAgICAgICAgICAgXS5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2l9IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ncmFkaWVudC10by1iIGZyb20td2hpdGUvNSB0by10cmFuc3BhcmVudCBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLXhsIHAtNiBoLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tb25vIHRleHQtbXV0ZWQgYmxvY2sgbWItM1wiPntzLnN0ZXB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCBtYi0yXCI+e3MudGl0bGV9PC9oMz5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZCBsZWFkaW5nLXJlbGF4ZWRcIj57cy5kZXNjfTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7aSA8IDQgJiYgKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbWQ6YmxvY2sgYWJzb2x1dGUgdG9wLTEvMiAtcmlnaHQtMi41IHctNSBoLXB4IGJnLWJvcmRlclwiIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0yMCBncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC04XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLXhsIHAtNiBiZy1zdXJmYWNlLzUwXCI+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LWdyZWVuLTUwMC84MCBtYi0zXCI+Q0hBSU48L3A+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbWItMVwiPkJhc2UgU2Vwb2xpYSAoTDIpPC9wPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkXCI+TG93LWNvc3QsIGhpZ2gtdGhyb3VnaHB1dCBzZXR0bGVtZW50IGZvciBhZ2VudCBzY29yZSBzdWJtaXNzaW9ucyBhbmQgcGFja2FnZSByZWdpc3RyYXRpb25zLjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQteGwgcC02IGJnLXN1cmZhY2UvNTBcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tb25vIHRleHQtYmx1ZS00MDAvODAgbWItM1wiPlNUT1JBR0U8L3A+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbWItMVwiPkZpbGV2ZXJzZSAoSVBGUyk8L3A+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWRcIj5GdWxsIGF1ZGl0IHJlcG9ydHMgdXBsb2FkZWQgdG8gZGVjZW50cmFsaXplZCBzdG9yYWdlLiBVUkkgc3RvcmVkIG9uLWNoYWluIGZvciBwZXJtYW5lbnQgcmVmZXJlbmNlLjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQteGwgcC02IGJnLXN1cmZhY2UvNTBcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tb25vIHRleHQtcHVycGxlLTQwMC84MCBtYi0zXCI+SURFTlRJVFk8L3A+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbWItMVwiPkVOUyBSZXNvbHV0aW9uPC9wPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkXCI+QXV0aG9yIGFkZHJlc3NlcyByZXNvbHZlZCB0byBFTlMgbmFtZXMuIE9uLWNoYWluIGF1dGhvciBwcm9maWxlcyB3aXRoIHJlcHV0YXRpb24gc2NvcmluZy48L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICApO1xufVxuXG5mdW5jdGlvbiBDTElTZWN0aW9uKCkge1xuICBjb25zdCBjb21tYW5kcyA9IFtcbiAgICB7IGNtZDogJ29wbSBwdXNoJywgZGVzYzogJ1NpZ24sIHNjYW4gd2l0aCAzIEFJIGFnZW50cywgcHVibGlzaCwgcmVnaXN0ZXIgb24tY2hhaW4nIH0sXG4gICAgeyBjbWQ6ICdvcG0gaW5zdGFsbCA8cGtnPicsIGRlc2M6ICdJbnN0YWxsIHdpdGggc2lnbmF0dXJlICsgb24tY2hhaW4gKyBDVkUgdmVyaWZpY2F0aW9uJyB9LFxuICAgIHsgY21kOiAnb3BtIGNoZWNrJywgZGVzYzogJ1NjYW4gYWxsIGRlcHM6IHR5cG9zcXVhdHMsIENWRXMsIEFJIGFuYWx5c2lzLCBGaWxldmVyc2UgcmVwb3J0JyB9LFxuICAgIHsgY21kOiAnb3BtIGZpeCcsIGRlc2M6ICdBdXRvLWZpeCB0eXBvc3F1YXRzIGFuZCB2dWxuZXJhYmxlIHZlcnNpb25zJyB9LFxuICAgIHsgY21kOiAnb3BtIGF1ZGl0JywgZGVzYzogJ09uLWNoYWluICsgQ1ZFIGF1ZGl0IGZvciBlbnRpcmUgZGVwZW5kZW5jeSB0cmVlJyB9LFxuICAgIHsgY21kOiAnb3BtIGluZm8gPHBrZz4nLCBkZXNjOiAnT24tY2hhaW4gbWV0YWRhdGEsIGFnZW50IHNjb3Jlcywgc2FmZXN0IHZlcnNpb24nIH0sXG4gICAgeyBjbWQ6ICdvcG0gcmVnaXN0ZXItYWdlbnQnLCBkZXNjOiAnUmVnaXN0ZXIgYSBuZXcgc2VjdXJpdHkgYWdlbnQgKFpLLXZlcmlmaWVkKScgfSxcbiAgICB7IGNtZDogJ29wbSB2aWV3IDxuYW1lLmV0aD4nLCBkZXNjOiAnRU5TIGF1dGhvciBwcm9maWxlLCByZXB1dGF0aW9uLCBwdWJsaXNoZWQgcGFja2FnZXMnIH0sXG4gIF07XG5cbiAgcmV0dXJuIChcbiAgICA8c2VjdGlvbiBpZD1cImNsaVwiIGNsYXNzTmFtZT1cInB5LTMyIHB4LTYgYm9yZGVyLXQgYm9yZGVyLWJvcmRlclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy02eGwgbXgtYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTIgZ2FwLTE2XCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tb25vIHRleHQtbXV0ZWQgbWItNCB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlXCI+Q0xJIFJlZmVyZW5jZTwvcD5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBmb250LWJvbGQgdHJhY2tpbmctdGlnaHQgbWItNlwiPlxuICAgICAgICAgICAgICBFdmVyeSBjb21tYW5kLDxiciAvPnNlY3VyaXR5LWZpcnN0LlxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQgbGVhZGluZy1yZWxheGVkIG1iLThcIj5cbiAgICAgICAgICAgICAgRHJvcC1pbiByZXBsYWNlbWVudCBmb3IgbnBtLiBFdmVyeSBvcGVyYXRpb24gZ2FpbnMgY3J5cHRvZ3JhcGhpYyB2ZXJpZmljYXRpb24sIEFJLXBvd2VyZWQgYXVkaXRpbmcsIGFuZCBvbi1jaGFpbiBhdHRlc3RhdGlvbiB0cmFuc3BhcmVudGx5LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGEgaHJlZj17RE9DU19VUkx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCIgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gZm9udC1tZWRpdW0gcHgtNCBweS0yIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQtbGcgaG92ZXI6Ymctc3VyZmFjZSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICBGdWxsIENMSSBkb2N1bWVudGF0aW9uXG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRlcm1pbmFsLWdsb3cgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1zdXJmYWNlIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC00IHB5LTMgYm9yZGVyLWIgYm9yZGVyLWJvcmRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMyBoLTMgcm91bmRlZC1mdWxsIGJnLVsjZmY1ZjU3XVwiIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0zIGgtMyByb3VuZGVkLWZ1bGwgYmctWyNmZWJjMmVdXCIgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTMgaC0zIHJvdW5kZWQtZnVsbCBiZy1bIzI4Yzg0MF1cIiAvPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtbC0yIHRleHQteHMgdGV4dC1tdXRlZCBmb250LW1vbm9cIj50ZXJtaW5hbDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTUgZm9udC1tb25vIHRleHQtc20gc3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIHtjb21tYW5kcy5tYXAoKGMsIGkpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPVwiZmxleCBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1tdXRlZCBzaHJpbmstMFwiPiQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWdyZWVuLTQwMFwiPntjLmNtZH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQvNTAgdGV4dC14cyBibG9jayBtdC0wLjVcIj57Yy5kZXNjfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gQ29udHJhY3RTZWN0aW9uKCkge1xuICByZXR1cm4gKFxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB5LTMyIHB4LTYgYm9yZGVyLXQgYm9yZGVyLWJvcmRlclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy00eGwgbXgtYXV0byB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LW11dGVkIG1iLTQgdHJhY2tpbmctd2lkZXN0IHVwcGVyY2FzZVwiPlNtYXJ0IENvbnRyYWN0PC9wPlxuICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgZm9udC1ib2xkIHRyYWNraW5nLXRpZ2h0IG1iLTZcIj5cbiAgICAgICAgICBGdWxseSBvbi1jaGFpbi4gRnVsbHkgdmVyaWZpYWJsZS5cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZCBtYXgtdy0yeGwgbXgtYXV0byBtYi0xMlwiPlxuICAgICAgICAgIE9QTVJlZ2lzdHJ5LnNvbCBkZXBsb3llZCBvbiBCYXNlIFNlcG9saWEuIEV2ZXJ5IHBhY2thZ2UgcmVnaXN0cmF0aW9uLCBhZ2VudCBzY29yZSBzdWJtaXNzaW9uLCBhbmQgYXV0aG9yIHByb2ZpbGUgaXMgYW4gaW1tdXRhYmxlIG9uLWNoYWluIHJlY29yZC5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNCBnYXAtcHggYmctYm9yZGVyIHJvdW5kZWQteGwgb3ZlcmZsb3ctaGlkZGVuIG1iLTEyXCI+XG4gICAgICAgICAge1tcbiAgICAgICAgICAgIHsgbGFiZWw6ICdQYWNrYWdlcycsIGRlc2M6ICdSZWdpc3RlcmVkJyB9LFxuICAgICAgICAgICAgeyBsYWJlbDogJ0FnZW50IFNjb3JlcycsIGRlc2M6ICdTdWJtaXR0ZWQnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnQXV0aG9ycycsIGRlc2M6ICdWZXJpZmllZCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdSZXBvcnRzJywgZGVzYzogJ09uIElQRlMnIH0sXG4gICAgICAgICAgXS5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9XCJiZy1zdXJmYWNlIHAtNlwiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQgbWItMVwiPntzLmRlc2N9PC9wPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGRcIj57cy5sYWJlbH08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj17QkFTRVNDQU59XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSBmb250LW1vbm8gdGV4dC1tdXRlZCBob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9ycyBweC00IHB5LTIgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidy0yIGgtMiByb3VuZGVkLWZ1bGwgYmctZ3JlZW4tNTAwXCIgLz5cbiAgICAgICAgICAgIFZpZXcgb24gQmFzZVNjYW5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9e2Ake0dJVEhVQl9VUkx9L2Jsb2IvbWFpbi9wYWNrYWdlcy9jb250cmFjdHMvY29udHJhY3RzL09QTVJlZ2lzdHJ5LnNvbGB9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSB0ZXh0LW11dGVkIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzIHB4LTQgcHktMiBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLWxnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTb3VyY2UgQ29kZVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEZvb3RlcigpIHtcbiAgcmV0dXJuIChcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImJvcmRlci10IGJvcmRlci1ib3JkZXIgcHktMTIgcHgtNlwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy02eGwgbXgtYXV0byBmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTZcIj5cbiAgICAgICAgPGEgaHJlZj1cIi9cIiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMi41IGhvdmVyOm9wYWNpdHktODAgdHJhbnNpdGlvbi1vcGFjaXR5XCI+XG4gICAgICAgICAgPExvZ28gc2l6ZT17MTh9IC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPm9wbTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWRcIj5Pbi1jaGFpbiBQYWNrYWdlIE1hbmFnZXI8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNiB0ZXh0LXNtIHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICA8YSBocmVmPXtET0NTX1VSTH0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIiBjbGFzc05hbWU9XCJob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9yc1wiPkRvY3M8L2E+XG4gICAgICAgICAgPGEgaHJlZj17R0lUSFVCX1VSTH0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIiBjbGFzc05hbWU9XCJob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9yc1wiPkdpdEh1YjwvYT5cbiAgICAgICAgICA8YSBocmVmPXtOUE1fVVJMfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiIGNsYXNzTmFtZT1cImhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzXCI+bnBtPC9hPlxuICAgICAgICAgIDxhIGhyZWY9e0JBU0VTQ0FOfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiIGNsYXNzTmFtZT1cImhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzXCI+Q29udHJhY3Q8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQvNTBcIj5NSVQgTGljZW5zZTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9vdGVyPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xuICByZXR1cm4gKFxuICAgIDxtYWluPlxuICAgICAgPE5hdiAvPlxuICAgICAgPEhlcm8gLz5cbiAgICAgIDxGZWF0dXJlcyAvPlxuICAgICAgPEFyY2hpdGVjdHVyZSAvPlxuICAgICAgPENMSVNlY3Rpb24gLz5cbiAgICAgIDxDb250cmFjdFNlY3Rpb24gLz5cbiAgICAgIDxGb290ZXIgLz5cbiAgICA8L21haW4+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJET0NTX1VSTCIsIkdJVEhVQl9VUkwiLCJOUE1fVVJMIiwiQ09OVFJBQ1QiLCJCQVNFU0NBTiIsIkxvZ28iLCJzaXplIiwic3ZnIiwidmlld0JveCIsImZpbGwiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0IiwicmVjdCIsInJ4IiwicGF0aCIsImQiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImNpcmNsZSIsImN4IiwiY3kiLCJyIiwiTmF2Iiwic2Nyb2xsZWQiLCJzZXRTY3JvbGxlZCIsImhhbmRsZXIiLCJ3aW5kb3ciLCJzY3JvbGxZIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibmF2IiwiY2xhc3NOYW1lIiwiZGl2IiwiYSIsImhyZWYiLCJzcGFuIiwidGFyZ2V0IiwicmVsIiwiSGVybyIsInNlY3Rpb24iLCJoMSIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJhbmltYXRpb25GaWxsTW9kZSIsImJyIiwicCIsImNvZGUiLCJGZWF0dXJlcyIsImZlYXR1cmVzIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImRldGFpbCIsImljb24iLCJpZCIsImgyIiwibWFwIiwiZiIsImkiLCJoMyIsIkFyY2hpdGVjdHVyZSIsInN0ZXAiLCJkZXNjIiwicyIsIkNMSVNlY3Rpb24iLCJjb21tYW5kcyIsImNtZCIsImMiLCJDb250cmFjdFNlY3Rpb24iLCJsYWJlbCIsIkZvb3RlciIsImZvb3RlciIsIkhvbWUiLCJtYWluIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/page.tsx\n"));
|
|
19
|
-
|
|
20
|
-
/***/ })
|
|
21
|
-
|
|
22
|
-
});
|